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 :
a. vérifieisset($_POST['cp']);
b. récupère$cpet$qt;
c. se connecte (mysql_connect("localhost","root","")) et sélectionne la basebd_coop;
d. teste si le produit existe (SELECT+mysql_num_rows) ;
e. si oui :INSERTdanscommandeavec la date système et affiche « Commande enregistrée » ; si non : « Produit introuvable » ;
f. 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) :
<?
if (isset($_POST['cp']))
{
$cp = $_POST['cp'];
$qt = $_POST['qt'];
$date = date('Y-m-d');
mysql_connect("localhost", "root", ""); // connexion serveur (legacy examen)
mysql_select_db("bd_coop");
Requête, branches et affichage :
$rep = mysql_query("select code_prod from produit where code_prod='$cp'");
if (mysql_num_rows($rep) == 1)
{
mysql_query("insert into commande values('', '$cp', '$qt', '$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 sujets du bac (EasyPHP). En production moderne : PDO/mysqli préparés, comptes limités, validation serveur stricte. Seule la première est attendue ; ne confondez pas les deux.