Exercice — dans l'esprit des sujets du bac
La coopérative scolaire dispose déjà des tables MySQL `produit(code_prod, libelle_prod, stock_prod)` et `commande(num_cmd, code_prod#, qte_cmd, date_cmd)`. Un formulaire HTML `name="fcmd"` envoie en POST vers `commande.php` les champs `code_prod` (name `cp`), `qte` (name `qt`) et le bouton submit name `b1`.
- Écrire le script PHP `commande.php` (syntaxe d’examen EasyPHP) qui :
1. vérifie `isset(cp` et `$qt` ;
3. se connecte (`mysql_connect("localhost","root","")`) et sélectionne la base `bd_coop` ;
4. teste si le produit existe (`SELECT` + `mysql_num_rows`) ;
5. si oui : `INSERT` dans `commande` avec la date système et affiche « Commande enregistrée » ; si non : « Produit introuvable » ;
6. ferme la connexion. - En une phrase, pourquoi ce script est un exercice web (WB) et non un exercice BD pur ?
Voir la correction commentéeAprès avoir posé votre démarche
Récupération PHP + connexion MySQL (syntaxe d’examen `mysql_*`, balises courtes éventuelles) :
```php
<?
if (isset(_POST['cp']))
{cp = qt = date = date('Y-m-d');
mysql_connect("localhost", "root", ""); // connexion serveur (legacy examen)
mysql_select_db("bd_coop");
```
Requête, branches et affichage :
```php
cp'");
if (mysql_num_rows(rep) == 1)
{
mysql_query("insert into commande values('', 'cp', 'date')");
echo "<b>Commande enregistree</b>";
}
else
{
echo "<b>Produit introuvable</b>";
}
mysql_close();
}
else
echo "<b>la recuperation des donnees est incorrecte</b>";
?>
```
WB vs BD. Ici on enchaîne réception du formulaire web (`isset`, `$_POST`), exécution conditionnelle et réponse affichée au navigateur. Un exercice BD pur s’arrêterait au schéma ou à la requête SQL hors page PHP.
Legacy / sécurité. `mysql_*`, injection SQL par concaténation et `root` sans mot de passe sont la syntaxe des corrigés EasyPHP du bac SI. En production moderne : PDO/mysqli préparés, comptes limités, validation serveur stricte. Le barème d’examen note la première ; ne confondez pas les deux.