[Resolu] Plusieurs requetes MySQL > Syntaxe PHP ?

Plusieurs requetes MySQL > Syntaxe PHP ? [Resolu] - PHP - Programmation

Marsh Posté le 23-09-2005 à 13:35:52    

Bonjour a tous !!
 
La reponse est certainement tres simple, elle existe certainement sur internet, mais mes recherches m oritent tjs hors sujet !!
 
Je souhaite dc savoir quelle est la syntaxe PHP pr plusieurs requetes MySQL (je souhaite construire ma requete avec une boucle for, comme le montre l exemple suivant !)
 

Code :
  1. if (isset($_POST['list_id'])) $list_id=$_POST['list_id'];
  2. $nb_rows=sizeof($list_id);
  3. $sql="";
  4. foreach ($list_id as $id) {
  5.  $sql.= 'UPDATE `dico` SET `display` = \'0\' WHERE `id` = \''.$id.'\' LIMIT 1 ;';
  6.    
  7.         }
  8. $sql.= ' ';
  9. $req = mysql_query($sql) or die('SQL Error!<br>'.$sql.'<br>'.mysql_error());
  10. echo "$nb_rows updated";


 
Thanks for your help ! :hello:


Message édité par dcvlm le 23-09-2005 à 16:22:36

---------------
ZZZZzzzzz
Reply

Marsh Posté le 23-09-2005 à 13:35:52   

Reply

Marsh Posté le 23-09-2005 à 13:49:43    

tu peux le faire avec une seule requete, par exemple :

Code :
  1. $list = join(',', $list_id);
  2. $sql = 'UPDATE `dico` SET `display` = '0' WHERE `id` IN ('.$list.')';

Reply

Marsh Posté le 23-09-2005 à 15:41:36    

soju a écrit :

tu peux le faire avec une seule requete, par exemple :

Code :
  1. $list = join(',', $list_id);
  2. $sql = 'UPDATE `dico` SET `display` = '0' WHERE `id` IN ('.$list.')';



 
Grant ! It works !  :jap:  
Mais je serai tt de meme interesse de connaitre la syntaxe que je cherchais a la base (ca pourrait me servir !)...ne serait ce qu un super lien que je n ai pas encore rencontre !!!
Merci


---------------
ZZZZzzzzz
Reply

Marsh Posté le 23-09-2005 à 15:43:40    

dcvlm a écrit :

Mais je serai tt de meme interesse de connaitre la syntaxe que je cherchais a la base


tu ne peux executer qu'une seule requête avec mysql_query, donc au lieu de concaténer tes requêtes il aurait fallu mettre mysql_query dans la boucle

Reply

Marsh Posté le 23-09-2005 à 15:50:09    

soju a écrit :

tu ne peux executer qu'une seule requête avec mysql_query, donc au lieu de concaténer tes requêtes il aurait fallu mettre mysql_query dans la boucle


 :ouch: Sapristi !! C vraiment impossible de lui dire :
#fait : ca ca et ca
il faut donc lui dire:
#tu vois, ca, bah tu le fais
#tu vois, ca, bah tu le fais
#tu vois, ca, bah tu le fais
 
 :??:  :??:  :??:  :??: Parce que ds PhpMyAdmin, qd on demande de generer la source PHP, il nous en met plusieurs d un coup..... ctun leurre !!  :??:  
(ne tapez pas dessus, je ne suis pas sense etre un pro Php/MySql  :non: )
 
 :hello:


---------------
ZZZZzzzzz
Reply

Marsh Posté le 23-09-2005 à 16:14:54    

Ben tu pourais tenter en  

  • séparant les requettes par "union" mais le comportement n'est pas défini pour des update vu que "union" n'est normalement prévus que pour des "select" ou des "show"
  • imbriquant les requettes, mais ca serait vraiment chercher la complication.
  • utiliser des instructions comme "CASE" ( http://www.nexen.net/docs/mysql/an [...] ?lien=then ) mais dans ton cas ca n'avais aucun intéré et le but de l'utilisation de case, c'est de retomber sur une seule requette sql.


Sinon, il faut utiliser une requette stocké mais là, c'est vraiment se compliquer la tache et ca ne ferait que déplacer le probléme.
 
 
EDIT : Et oui, phpmyadmin découpe les ensembles de requettes pour n'en envoyer qu'une seule à la fois au serveur. ;) On peut donc envoyer plusieurs requettes à la fois à phpmyadmin, mais derriére, mysql ne les recoit qu'une par une.


Message édité par omega2 le 23-09-2005 à 16:16:27
Reply

Marsh Posté le 23-09-2005 à 16:19:25    

sinon ya toujours la commande mysql : http://dev.mysql.com/doc/mysql/fr/batch-commands.html

Reply

Marsh Posté le 23-09-2005 à 16:21:31    

Merci pour vos reponses ! :)


---------------
ZZZZzzzzz
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed