Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1885 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Rrreur Requete Mysql Par PHP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Rrreur Requete Mysql Par PHP

n°1451730
Agmoh
¯\_(ツ)_/¯
Posté le 03-10-2006 à 19:47:23  profilanswer
 

Bonjour...
j'ai un souci assez chelou en PHP / MySQL...
 
Dans mon code je veut entrer une commande dans des table    dont voici le MLD.
 
Commande : (numcommande, date, totcom, #codeC)
Produit : (ref, nom, description, prixttc, stock, #codeR)
Contenir (#numcommande,#ref,Qté)
 
 
 

Code :
  1. $contenir='';
  2.      $commande="INSERT INTO commande(numcde,date,codec,totcom)
  3.            VALUES ('".$res['codec'].time()."','".date("Y-m-d" )."',".$res['codec'].",".$_SESSION['panier']['totcom']." );";
  4.            $i=0;
  5.      while($_SESSION['panier']['ref'][$i]!=false)
  6.      {
  7.      $contenir=$contenir."
  8.      INSERT INTO contenir(numcde,ref,qte)
  9.      VALUES (".$res['codec'].time().",".$_SESSION['panier']['ref'][$i].",".$_SESSION['panier']['qtecom'][$i]." );
  10.      ";
  11.      $i++;
  12.      }
  13.     echo "$commande <br>";
  14.     echo "$contenir <br>";
  15.     $session_sql -> execute_requete($commande);
  16.     echo "blabla";
  17.     $ech=$session_sql -> execute_requete($contenir);
  18.     var_dump($ech);


 
 
Quand je passe par mon site, il me met une erreur et il ne met pas ma table contenir a jour mais ma table commande c'est OK.
Pourtant quand je recopie la requete de ma variable $contenir et que je le copie dans mySQL il me l'execute !!!
Coment ca se fait ?
 
Merci !  

mood
Publicité
Posté le 03-10-2006 à 19:47:23  profilanswer
 

n°1451741
naceroth
Posté le 03-10-2006 à 20:19:02  profilanswer
 

Bon, malgré le fait que je m'étais juré de ne plus intervenir dans un topic dont l'auteur parle d'erreur blabla sans juger utile de nous donner le message d'erreur en question, je peux déjà te dire que mysql n'aime pas les requêtes multiples (comprendre : plusieurs requêtes à exécuter dans la même instruction).
 
Ce qui a l'air d'être le cas dans ton code (à moins qu'execute_requete ne s'amuse à les séparer mais bizarrement, j'y crois pas).

n°1451744
Agmoh
¯\_(ツ)_/¯
Posté le 03-10-2006 à 20:35:58  profilanswer
 

toutes mes excuses :  
 
"Erreur dans la requête INSERT INTO contenir(numcde,ref,qte) VALUES ('15051159900449','1000','2'), INSERT INTO contenir(numcde,ref,qte) VALUES ('15051159900449','2005','2'), INSERT INTO contenir(numcde,ref,qte) VALUES ('15051159900449','2010','1'), INSERT INTO contenir(numcde,ref,qte) VALUES ('15051159900449','1','2') Erreur de syntaxe près de 'INSERT INTO contenir(numcde,ref,qte) VALUES ('150511599004' à la ligne 4"

n°1451747
naceroth
Posté le 03-10-2006 à 20:40:44  profilanswer
 

Oui donc c'est bien ce que j'ai dit plus haut, mysql n'aime pas les requêtes multiples.

n°1451783
Agmoh
¯\_(ツ)_/¯
Posté le 03-10-2006 à 21:44:13  profilanswer
 

Merci de me répondre ! Comment ca il aime pas ? ya aucun moyen ou c'est aléatoire ? car quand je vais dans la fenetre de mysql et que je colle cette requete il me l'execute sans broncher :-/

n°1451802
naceroth
Posté le 03-10-2006 à 21:55:10  profilanswer
 

Ben suffit d'exécuter chacune de tes requêtes dans la boucle plutôt qu'une fois la boucle terminée. Ou si tu tiens vraiment à ce qu'elles ne soient exécutées qu'une fois hors de la boucle, faut voir du côté des transactions , mais tu n'échapperas pas au principe 1 requête = 1 instruction php.
 
(tu entends quoi par fenêtre de mysql, parce que j'ai un léger doute sur le "sans broncher" depuis l'interface en ligne de commande alors qu'il envoit bouler depuis les GUI de mysql :D)
 
//edit :
Et bien en fait, mysql en ligne de commande aussi le fait sans broncher.
 
Pour en dessous : phpmyadmin n'est pas mysql, c'est juste un interface de gestion qui sépare tes insert à la suite pour en faire une suite d'exécution de insert :)


Message édité par naceroth le 03-10-2006 à 22:05:07
n°1451809
Agmoh
¯\_(ツ)_/¯
Posté le 03-10-2006 à 22:01:29  profilanswer
 

la petite fenetre nommé "SQL" de phpMyAdmin... la il  me le fais sans broncher mes Insert Into a la suite...
 
Bon sinon j'ai trouvé comment faire.
 
donc pour les gens qui a qui ca peut servir :
 
Au lieu de faire  
 
$contenu='';
While(tableau)
{
$contenu=$contenu."Insert Into table (xxx) VALUES ("yyy" )";
}
 
faire :
 
$contenu='INSERT INTO table 'xxx' VALUES ';
While(tableau)
{
$contenu=$contenu."("yyy" ),";
}
 
en gros :
 
INSERT INTO tatable
(champ1, champ2)
VALUES
('', ''),
('', ''),
('', '')
 
Voili voilou ! pas si dur !
merci naceroth pour ta participation au topic ! me serait senti seul !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Rrreur Requete Mysql Par PHP

 

Sujets relatifs
Grouper les résultats d'une requeteNumérique dans Balise <INPUT TYPE='TEXT'> + PHP
parcourir, Stocker image ds bd mysql et l'afficher !!Uploader des fichiers via un formulaire en PHP
[PHP/Mysql] Problème avec 2 connexions simultanéesHTML, PHP, ASP ........... ?
PEUT-ON APPLIQUER LA MODULARITÉ EN PHPréalisable en 1 requète ??
[MySQL]UTF8 vs ISO-.. 
Plus de sujets relatifs à : Rrreur Requete Mysql Par PHP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR