Comment ecrier ma requète pour lier mes tables

Résolu
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 - 9 avril 2014 à 13:19
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 - 11 avril 2014 à 10:02
Bonjour,
voila . j'ai les tables :
produits(id,nom_prod)
commande(id,date,staut)
ligne_commande(id,qte,id_com,id_prod)

mon problème s'est de récupérer la clef du produit choisi et l'insérer dans la table ligne_commande. je sais pas comment m'y prendre.
voici mon code:
<?php
include('body/header.php');
include('body/menu.php');
if (isset($_POST["valider"])) {
$date = mysql_real_escape_string(htmlspecialchars(trim($_POST['date'])));
$date = mysql_real_escape_string(htmlspecialchars(trim($_POST['date'])));
$status = mysql_real_escape_string(htmlspecialchars(trim($_POST['compt_client'])));
$result = mysql_query("INSERT INTO commandes(id,date,status,id_client) VALUES('','".$date."','".$status."','".$id_client."')");
$id_com = mysql_insert_id();
$result1 = mysql_query("INSERT INTO ligne_commandes(id,qte_com,id_com,id_prod) VALUES('','".$qte_com."','".$id_com."','".$id_prod."')");
if ($result1) {

$msg = 'la commande de***:'.$compt_client.'a été effectuée';
echo '<script>alert(\' '.$msg.' \');</script>';
} else {
echo 'Erreur';
}
}
?>
comment recuperer le id du produit qui sera dans
'".$id_prod."'
de la table ligne_commandes

2 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
9 avril 2014 à 14:24
Bonjour,

Je n'ai rien compris à ta question....

De plus (Sachant que je t'en ai déjà parlé un milliard de fois...) :

1 - N'oublies pas de vérifier avec ISSET que tes variables POST existent.
$status = isset ($_POST['compt_client']) ? mysql_real_escape_string(htmlspecialchars(trim($_POST['compt_client']))) : '';


2- Séparent la requête ( la string qui la compose) de l'instruction mysql_query -> Cela rend la compréhension et le debogage plus facile.
.. Le tout en faisant des retours à la ligne..ce qui en simplifie la lecture !

exemple:
$sql = " SELECT * 
             FROM matable
             WHERE id = '$id_user' ";
$result1 = mysql_query($sql) or die( 'error : ' .$sql);


Merci de reformuler ta question en essayant d'expliquer le plus précisément ce que tu cherches à obtenir
et merci de "ré-ecrire" ton code en tenant de compte de mes remarques précédentes.

Je pense avoir une idée de ce que tu souhaites obtenir...... ton ' id_prod' .. ca ne serait pas l' ID généré lors de l'insert précédent ... que tu souhaites récupérer ??
Donc ça serait ça qu'il te faut :
http://php.net/manual/fr/function.mysql-insert-id.php
$id_prod = mysql_insert_id($result);



0
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
11 avril 2014 à 10:02
bonjour a tous,
merci @Jordane45 . j'ai pu résoudre .
voici ce que j'ai fais:
$result = mysql_query("INSERT INTO commandes(id,num_cmd,date,id_client) VALUES('','".$num_cmd."','".$date."','".$id_cl."')");
$id_com = mysql_insert_id();
$result1 = mysql_query("INSERT INTO ligne_commandes(qte_com,id_com,id_prod) VALUES('".$qte_com."','".$id_com."','".$id_prod."')");
0
Rejoignez-nous