SRC2 Examen de PHP octobre 2008
Examen de PHP
Les documents (polycopiés, livres, ...) sont autorisés. Vous pouvez faire les questions dans l’ordre que vous souhaitez.
1 Exercice 1
Faites une fonction PHP qui prend en entrée un tableau d’entier $tab et qui retourne -1 s’il y a plus d’éléments strictement négatifs que d’éléments strictement positifs dans le tableau $tab, 0 s’il y en a autant, et 1 s’il y a plus d’éléments strictement positifs que d’éléments strictement négatifs.
2 Exercice 2 - Gestion des commandes de clients
Nous considérons ici une entreprise appelée SRC2 qui vend des produits informatiques en ligne et qui souhaite développer son site web de vente. On suppose constituée une base de données MySQL appeléeSRC2comprenant trois tables :Produits,Clients,Commandes.
– La tableProduitsa quatre champs : un numéro entier d’identification,id_produit, un nom (ex : clavier)nom, un entierprix, qui représente le prix du produit (ex : 15 euros), et un entier quantitéqui donne pour chaque produit la taille du stock (ex : 6 s’il reste 6 claviers en stock).
– La tableClientsa trois champs :id_client,nom,prenom qui représentent respectivement le numéro d’identi- fication du client, son nom, et son prénom.
– La tableCommandesa 4 champs : un numéro d’identificationid_commande, un numéro d’identification de l’objet commandéid_produit, un numéro d’identification du client qui passe la commandeid_client, et le nombre d’objets commandésquantité.
1. Faites une fonctionconnexionchargée de se connecter à la base de données (hôte : localhost, login : root, mot de passe : SRC2PHP) et de sélectionner la base de données SRC2
2. Faites une fonction affiche_clients() qui permet d’afficher, sous forme de tableau HTML, tous les clients entrés dans la base (une ligne par client, une colonne pour l’identifiant, une pour le nom, une pour le prénom).
3. (a) Faites une fonction ajout_produit($num,$nom,$prix,$quantite) qui permet d’ajouter un produit de numéro$num, de nom$nom, de prix$prixet de quantité$quantitédans la base de données.
Voici le code du formulaire qui permet d’ajouter un produit dans la base :
<form action="<?php $_SERVER["PHP_SELF"] ?>" method="post">
<fieldset>
<legend>Rajouter un produit</legend>
<table>
<thead>
<td>Numéro</td>
<td>Nom</td>
<td>Prix</td>
<td>Quantité</td>
<td></td>
</thead>
<tr>
<td><input type="texte" name="numero" value=""></td>
<td><input type="texte" name="nom" value=""></td>
<td><input type="texte" name="prix" value=""></td>
<td><input type="texte" name="quantite" value=""></td>
<td><input type="submit" value="Ajouter"/></td>
</tr>
</table>
</fieldset>
</form>
(b) Dessinez le formulaire comme il apparaît à l’écran.
(c) que désigne$_SERVER["PHP_SELF"]?
(d) Avec quelles variables faut-il appeler la fonctionajout_produit()pour ajouter le produit que l’utilisateur vient de rentrer dans le formulaire ci-dessus ?
4. On souhaite sauvegarder les commandes passées dans un fichier à l’aide d’une fonctionsauvegarde_commandes().
Sans écrire de code, citez les fonctions de manipulation de fichiers dont vous aurez besoin pour écrire cette fonction (expliquez en une phrase leur rôle).
5. (facultatif )Programmez une classegestion_base_donnees, dont vous préciserez les attributs, et qui possède une méthode permettant de se connecter à la base de données, une méthode permettant de fermer la connexion à la base de données, un constructeur, et une méthode permettant de faire une requête à la base de données.