Question php enregistrements

WRInaute occasionnel
Bonjour,

Je souhaiterais dans une même page pouvoir enregistrer plusieurs enregistrements qui s'incorporeraient dans la meme bdd est-ce possible?
 
WRInaute occasionnel
Salut,

Je comprend pas bien ta question...
Mais si tu veux faire plusieurs INSERT sur la même page il n'y a absolument aucun problème...
 
WRInaute occasionnel
ça marche avec phpmyadmin ça, car il parse ta requête... vraiement pas sûr que cela fonctionne dans le code d'une page...
 
WRInaute accro
biscuit a dit:
ça marche avec phpmyadmin ça, car il parse ta requête... vraiement pas sûr que cela fonctionne dans le code d'une page...

lol, oui ca marche et ca n'a aucun rapport avec phpmyadmin..
 
WRInaute occasionnel
KOogar a dit:
biscuit a dit:
ça marche avec phpmyadmin ça, car il parse ta requête... vraiement pas sûr que cela fonctionne dans le code d'une page...

lol, oui ca marche et ca n'a aucun rapport avec phpmyadmin..

Je persiste et signe, ceci :
Code:
$r = "INSERT INTO t_ta SET nom='blabla'; INSERT INTO t_ta SET nom='blabla2';";
$sql = mysql_query($r,$id);

ne fonctionne pas (sauf dans phpmyadmin), par contre pour ceci:

Code:
$r = "INSERT INTO t_ta SET nom='blabla'";
$sql = mysql_query($r,$id);

$r = "INSERT INTO t_ta SET nom='blabla2'";
$sql = mysql_query($r,$id);

pas de problème évidement !

PS: test effectué sur mysql 4.x ... maintenant est-ce que c'est une nouveauté de mysql 5 ?
 
WRInaute occasionnel
petit soucis effectivement voila ce que j'obtiens comme message d'erreur en essayant juste avec deux enregistrements à la fois avec la solution de e-kiwi : $requete=".$requete1.";".$requete2."


Erreur SQL !.INSERT INTO mabase(x, xx, xxx, xxxx, xxxxx) VALUES('x','xx','xxx','xxxx','xxxxx').
Erreur de syntaxe près de '.INSERT INTO mabase(x, xx, xxx, xxxx' à la ligne 1


quelqu'un aurait-il la solution?
 
WRInaute occasionnel
Justement c'est ce que je te disais, tu ne peux pas faire ça en une requête. Par contre tu peux faire une boucle:

Code:
$requete=".$requete1.";".$requete2." 
$t_requete = explode(";",$requete);

foreach ($t_requete as $r) {
 mysql_query($r,$id);
}
 
WRInaute occasionnel
ça ne fonctionne toujours pas même avec ta proposition biscuit.

j'avoue que je suis novice en la matière c'est pourquoi je fais appel à vos compétences alors si toutefois vous avez une solution qui fonctionne n'hesitez pas à me la transmettre.

d'avance merci
 
WRInaute occasionnel
ah je viens de voir un truc... sur la ligne
Code:
$requete=".$requete1.";".$requete2."
les points et guillemets ne sont pas à la bonne place...
Code:
$requete= $requete1 . ";" . $requete2 .";". $requete3;
 
WRInaute occasionnel
c'est presque bon sur l'erreur sql il m'affiche bien les données enregistrées mais l'enregistrement ne se fait toujours pas

Code:
Erreur SQL !INSERT INTO courrier(magasin, typecour, destinataire, dateheure, login) VALUES('mag1','lettre simple','1','2006-11-28','Virginie');INSERT INTO courrier(magasin, typecour, destinataire, dateheure, login) VALUES('mag2','lettre simple','2','2006-11-28','Virginie')
Erreur de syntaxe près de ';INSERT INTO courrier(magasin, typecour, destinataire, dateheure' à la ligne 1

un autre point que je voudrais comprendre a quoi correspond la variable $id dans ton code biscuit car chez moi elle n'est déclarée nulle part.


voici le code que j'ai inséré dans ma page :

Code:
$requete= $requete1 . ";" . $requete2 ;
$t_requete = explode(";",$requete); 

foreach ($t_requete as $r) { 
 mysql_query($r); 
}
 
WRInaute occasionnel
ok... $id est en fait l'identifiant de la connexion à mysql, mais c'est effectivement optionnel, je le mets par reflexe.

Le problème dans ta/tes requêtes, c'est qu'il y a un/des ";" qui traînent... quand tu déclares tes requêtes individuellement ne termine par ";"...

$r1 = "INSERT INTO ... VALUES ...;" ;

ce qui donne (en espérant que tout fonctionne)...

Code:
$r1 = "INSERT INTO ... VALUES ..." ;
$r2 = "INSERT INTO ... VALUES ..." ;

$requete = $r1 . ";" . $r2;
$t_requete = explode(";",$requete); 

foreach ($t_requete as $r) { 
 mysql_query($r); 
}
 
WRInaute accro
>> parse la "multi" requête
ok restons en la :wink:

Autre solution:
Code:
INSERT INTO t1 (v1,v2,v3) VALUES (1,2,3),(4,4,4),(5,1,10);
 
WRInaute occasionnel
Merci pour ta réponse biscuit mais je n'arrive pas à trouver l'erreur voici le code complet de mes requêtes :

Code:
$requete1 = "INSERT INTO courrier(magasin, typecour, destinataire, dateheure, login) VALUES('$magasin','$typecour','$destinataire','$dateheure','$login')";  
 
$requete2 = "INSERT INTO courrier(magasin, typecour, destinataire, dateheure, login) VALUES('$magasin2','$typecour2','$destinataire2','$dateheure2','$login2')";    
$requete= $requete1 . ";" . $requete2 ;
$t_requete = explode(";",$requete); 

foreach ($t_requete as $r) { 
 mysql_query($r); 
}


encore merci et désolé de t'ennuyer avec ça.

petite précision l'enregistrement se fait bien car je retrouve mes données dans la base mais j'ai toujours le message d'erreur de mon post précédent.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut