PHP MYSQL enregistré une requete dans 2 table
Résolu/Fermé
pro
-
12 mars 2009 à 14:22
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 - 12 mars 2009 à 20:23
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 - 12 mars 2009 à 20:23
A voir également:
- PHP MYSQL enregistré une requete dans 2 table
- Table ascii - Guide
- Table des matières word - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- Mysql community server - Télécharger - Bases de données
- 2 ecran pc - Guide
8 réponses
elanore31
Messages postés
374
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
7 août 2009
50
12 mars 2009 à 14:28
12 mars 2009 à 14:28
dernière ligne de ton code que tu as posté :
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
il faut que tu remplace par :
mysql_query($sql2) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
car c'est la deuxième requete que tu veux executer la deuxième fois pas la premiere
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
il faut que tu remplace par :
mysql_query($sql2) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
car c'est la deuxième requete que tu veux executer la deuxième fois pas la premiere
atspinto
Messages postés
338
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
8 août 2014
27
12 mars 2009 à 14:37
12 mars 2009 à 14:37
si je comprend bien le truc... et ke je ne me trompes... tu veux bien une coherence entre les enregistrements des 2 tables...
- donc P dépend de D
- et les 2 doivent exister à la fois : D et P exist à la fois ???
- donc P dépend de D
- et les 2 doivent exister à la fois : D et P exist à la fois ???
atspinto
Messages postés
338
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
8 août 2014
27
12 mars 2009 à 14:46
12 mars 2009 à 14:46
ok elanore 31 à raison...
Mais ke faire si la 2e ne marche pas, sachant ke la 1ere a marché impec....
Fo plutot faire une transaction... mais pour le faire, il fo ke ton serveur mySQL supporte le moteur INNODB...
ça ira si tu as au moins MySQL 4.0, te ke tes tables soient de ce type
mysql_query("BEGIN"); // debut transaction
if (operation_1 && operation_2) // si succès aux 2 executions
mysql_query("COMMIT"); // validation de la transaction
else // sinon
mysql_query("ROLLBACK"); // annulation des enregistrements
Mais ke faire si la 2e ne marche pas, sachant ke la 1ere a marché impec....
Fo plutot faire une transaction... mais pour le faire, il fo ke ton serveur mySQL supporte le moteur INNODB...
ça ira si tu as au moins MySQL 4.0, te ke tes tables soient de ce type
mysql_query("BEGIN"); // debut transaction
if (operation_1 && operation_2) // si succès aux 2 executions
mysql_query("COMMIT"); // validation de la transaction
else // sinon
mysql_query("ROLLBACK"); // annulation des enregistrements
merci de vos rep sa marche le truk d'elanor jvien de me rendre compte de l'erreur ^^
et j'avai une otre question, dans la premiere table D, il ya un ID qui s'autoincrémente, je voudrais que l'ID qui est attribué dans la table D soit aussi enregistrer dans le champ num de la table P
jespère ne pas etre tro complexe ^^
et j'avai une otre question, dans la premiere table D, il ya un ID qui s'autoincrémente, je voudrais que l'ID qui est attribué dans la table D soit aussi enregistrer dans le champ num de la table P
jespère ne pas etre tro complexe ^^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
atspinto
Messages postés
338
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
8 août 2014
27
12 mars 2009 à 15:07
12 mars 2009 à 15:07
lis ça https://mysql.developpez.com/faq/?page=Champs-auto-incrementes#SYNTAXE_AUTO_INCREMENT_valeur
ça te permettra de recuperer le dernier ID de D
et tu l'utiliseras pr P
ça te permettra de recuperer le dernier ID de D
et tu l'utiliseras pr P
ok je viens de voir le site donc si jai bien compri c'est la fonction LAST_ID_INSERT
mais je n'arrive pas a la faire fonctionner :
// on écrit la requête sql
$sql = "INSERT INTO S(civilite, nom, adresse, cp, ville, mail, statut, travaux, comment) VALUES('$civilite', '$nom', '$adresse', '$codepostal', '$ville', '$email', '$vous', '$interets', '$comments')";
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$mysql_id = mysql_query("SELECT LAST_INSERT_ID()");
// on écrit la requête sql
$sql2 = "INSERT INTO P(civilite, nom, mail, devis, numdevis) VALUES('$civilite','$nom','$email','oui','$mysql_id')";
// on insère les informations du formulaire dans la table
mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
mais je n'arrive pas a la faire fonctionner :
// on écrit la requête sql
$sql = "INSERT INTO S(civilite, nom, adresse, cp, ville, mail, statut, travaux, comment) VALUES('$civilite', '$nom', '$adresse', '$codepostal', '$ville', '$email', '$vous', '$interets', '$comments')";
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$mysql_id = mysql_query("SELECT LAST_INSERT_ID()");
// on écrit la requête sql
$sql2 = "INSERT INTO P(civilite, nom, mail, devis, numdevis) VALUES('$civilite','$nom','$email','oui','$mysql_id')";
// on insère les informations du formulaire dans la table
mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
atspinto
Messages postés
338
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
8 août 2014
27
12 mars 2009 à 15:42
12 mars 2009 à 15:42
ouais... je viens de l'utiliser, ça marche pas... mais lis ceci http://dev.mysql.com/doc/refman/5.0/fr/mysql-insert-id.html
essayes celle de PHP direct : mysql_insert_id() https://www.php.net/mysql_insert_id
si ça march tjrs pas... fais le savoir...
essayes celle de PHP direct : mysql_insert_id() https://www.php.net/mysql_insert_id
si ça march tjrs pas... fais le savoir...
atspinto
Messages postés
338
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
8 août 2014
27
12 mars 2009 à 20:23
12 mars 2009 à 20:23
sorry...
je viens de faire ce test et il marche...
Ma table essai : id (int auto_increment, primary key), num int ;
<?php
$link = mysql_connect('localhost', 'root', '');
if (!$link) {
die('Impossible de se connecter : ' . mysql_error());
}
mysql_select_db('_essai');
mysql_query("INSERT INTO essai (num) values ('4')") or die(mysql_error());
printf("Le dernier ID inséré dans est le id %d\n", mysql_insert_id());
?>
avec mysql_insert_id() tu recuperes ton ID autoincrement without pb...
Je l'ai lu sur ce lien.. https://www.php.net/mysql_insert_id
fais le, et fais le savoir...
je viens de faire ce test et il marche...
Ma table essai : id (int auto_increment, primary key), num int ;
<?php
$link = mysql_connect('localhost', 'root', '');
if (!$link) {
die('Impossible de se connecter : ' . mysql_error());
}
mysql_select_db('_essai');
mysql_query("INSERT INTO essai (num) values ('4')") or die(mysql_error());
printf("Le dernier ID inséré dans est le id %d\n", mysql_insert_id());
?>
avec mysql_insert_id() tu recuperes ton ID autoincrement without pb...
Je l'ai lu sur ce lien.. https://www.php.net/mysql_insert_id
fais le, et fais le savoir...
12 mars 2009 à 14:30
remplace plutot par çà
mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());