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

  FORUM HardWare.fr
  Programmation
  PHP

  While ... avec plusieurs requetes simultanées...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

While ... avec plusieurs requetes simultanées...

n°604000
freed102
Arayashiki
Posté le 06-01-2004 à 15:45:24  profilanswer
 

Voila je veux faire une boucle qui va chercher des infos dans 3 tables differentes...
 
j'ai procedé de cette maniere là... (en resumé !)
 

Code :
  1. mysql_select_db("$bddname", $connect);
  2.        $req = "SELECT * FROM devis1 WHERE id='$id_test'";
  3.          $result=MYSQL_QUERY($req) or die(mysql_error());
  4.          $total_reponses=mysql_num_rows($result);
  5.          mysql_select_db("$bddname", $connect);
  6.          $req2 = "SELECT * FROM enlevement WHERE devisnum='$devisnum'";
  7.          $result2=MYSQL_QUERY($req2) or die(mysql_error());
  8.          mysql_select_db("$bddname", $connect);
  9.          $req3 = "SELECT * FROM livraison WHERE devisnum='$devisnum'";
  10.      $result3=MYSQL_QUERY($req3) or die(mysql_error());
  11. [...]
  12. while ($data=mysql_fetch_array($result);$data2=mysql_fetch_array($result2);$data3=mysql_fetch_array($result3)){ [...] }


 
Mais bon... apparment c pas comme ça que ça marche ! lol ! comment feriez vous ??
 
PS : je sais ce que vous allez me dire... d'aller voir les tutoriaux etc etc ! lol ! mais bon j'ai rien trouvé pour les requetes multiples avec une boucle!
 
Freed

mood
Publicité
Posté le 06-01-2004 à 15:45:24  profilanswer
 

n°604001
gizmo
Posté le 06-01-2004 à 15:46:20  profilanswer
 

t'as surtout rien trouvé sur les boucles...

n°604007
freed102
Arayashiki
Posté le 06-01-2004 à 15:50:49  profilanswer
 

.. vous pensez qu'une requete du genre serait mieux ?
 
"SELECT * FROM devis1 ,enlevement,livraison WHERE id='$id_test' AND devisnum='$devisnum'"  
 
(je connais pas la synthaxe exacte... mais je sais qu'on peut faire des trucs comme ça... c'est à dire interroger plusieurs tables en même temps !)


Message édité par freed102 le 06-01-2004 à 15:51:24
n°604064
jagstang
Pa Capona ಠ_ಠ
Posté le 06-01-2004 à 17:07:25  profilanswer
 

lol
 
essaie ceci
 
 

Code :
  1. while (1)
  2.     {
  3. $data=mysql_fetch_array($result);
  4. $data2=mysql_fetch_array($result2);
  5. $data3=mysql_fetch_array($result3);
  6.     }


 
pis à l'occase, regarde la doc sur les boucles
 

n°604086
freed102
Arayashiki
Posté le 06-01-2004 à 17:33:02  profilanswer
 

non mais en fait c plus compliqué que ça ! lol ! je vais vous montrer le code général !
 

Code :
  1. <?
  2. mysql_select_db("$bddname", $connect);
  3. $req = "SELECT * FROM devis1 WHERE id='$id_test'";
  4. $result=MYSQL_QUERY($req) or die(mysql_error());
  5. $total_reponses=mysql_num_rows($result);
  6. ?>
  7. <tr class="tabtextegras">
  8. <td colspan="3" class="tabfond1">Vous avez <? echo $total_reponses; ?> devis enregistrés.</td>
  9. </tr>
  10. <? while ($data=mysql_fetch_array($result)){ ?>
  11. <tr valign="top" class="tabfond2">
  12. <td width="100" align="left" class="txt">
  13. <div align="left"><span class="tabtextegras">N&deg;
  14.                                             de Devis :</span><br><?
  15. //recuperation des données de chaque devis
  16. $devisnum=$data['devisnum'];
  17. echo $devisnum;
  18. $nb_pages = $data['nb_pages'];
  19. $format_papier= $data['format_papier'];
  20. $nb_pages_nb = $data['nb_pages_nb'];
  21. $nb_pages_coul = $data['nb_pages_coul'];
  22. $nb_ex = $data['nb_ex'];
  23. $rv = $data['rv'];
  24. $tarifs_finitions = $data['finitions'];
  25. $type_envoi = $data['type_envoi'];
  26. $date = $data['date'];
  27. if ($type_envoi!="type1" )
  28. {
  29. mysql_select_db("$bddname", $connect);
  30. $req2 = "SELECT * FROM enlevement WHERE devisnum='$devisnum'";
  31. $result2=MYSQL_QUERY($req2) or die(mysql_error());
  32. mysql_select_db("$bddname", $connect);
  33. $req3 = "SELECT * FROM livraison WHERE devisnum='$devisnum'";
  34. $result3=MYSQL_QUERY($req3) or die(mysql_error());
  35. while ($data2=mysql_fetch_array($result2))
  36.   {
  37.   $sqlraison_sociale1= $data2['raison_sociale'] ;
  38.   $sqlnom1= $data2['nom'] ;
  39.   $sqlprenom1= $data2['prenom'] ;
  40.   $sqladresse1= $data2['adresse'] ;
  41.   $sqlsecteur1= $data2['secteur'] ;
  42.   $sqlville1= $data2['ville'] ;
  43.   $sqltelephone1= $data2['telephone'] ;
  44.   }
  45.   while ($data3=mysql_fetch_array($result3))
  46.   {
  47.   $sqlraison_sociale2= $data3['raison_sociale'] ;
  48.   $sqlnom2= $data3['nom']  ;
  49.   $sqlprenom2= $data3['prenom']  ;
  50.   $sqladresse2= $data3['adresse']  ;
  51.   $sqlsecteur2= $data3['secteur']  ;
  52.   $sqlville2= $data3['ville']  ;
  53.   $sqltelephone2= $data3['telephone']  ;
  54.   }
  55.  }
  56.  else
  57.  {
  58.   mysql_select_db("$bddname", $connect);
  59.   $req3 = "SELECT * FROM livraison WHERE devisnum='$devisnum'";
  60.   $result3=MYSQL_QUERY($req3) or die(mysql_error());
  61.   while ($data3=mysql_fetch_array($result3))
  62.   {
  63.   $_SESSION['envoi1']="Téléchargement";
  64.   $sqlraison_sociale2= $data2['raison_sociale']  ;
  65.   $sqlnom2= $data2['nom']  ;
  66.   $sqlprenom2= $data2['prenom']  ;
  67.   $sqladresse2= $data2['adresse']  ;
  68.   $sqlsecteur2= $data2['secteur']  ;
  69.   $sqlville2= $data2['ville']  ;
  70.   $sqltelephone2= $data2['telephone']  ;
  71.   }
  72.  }
  73.  include("calcul_devis.php" );
  74.  ?>
  75. <br>
  76. <br>
  77. <span class="tabtextegras"> Date du devis :</span><br>
  78. <? echo $data['date']; ?> </div></td>
  79. <td width="250" class="txt"><span class="tabtextegras">Description du devis :</span>
  80. <br>
  81. <? echo $data['nb_pages']." pages ".$data['format_papier']."<br>en ".$data['rv']."<br>à ".$data['nb_ex']." exemplaires ..."; ?>
  82. <br>
  83. <br>
  84. <? echo "<span class=tabtextegras>Secteur d'enlevement :</span> ".$sqlsecteur1."<br><span class=tabtextegras>Secteur de livraison : </span>".$sqlsecteur2; ?>
  85. </td>
  86. <td align="right" class="tabtextegras"><div align="right">Montant:
  87. <br>
  88. <? echo $total_ttc; ?> &euro;</div></td>
  89. </tr>
  90. <tr class="tabtextegras">
  91. <td height="4" colspan="3" class="tabfond1">Temps total de r&eacute;alisation : <? echo $total_temps_formate; ?>
  92. | Temps de livraison : <? echo $temps_livr_formate; ?></td>
  93. </tr>
  94. <tr bgcolor="#999999" class="tabtextegras">
  95. <td height="4" colspan="3" ><img src="<?=$PathImages?>/spacer.gif" width="1" height="4"></td></tr>
  96. <? } ?>


Message édité par freed102 le 06-01-2004 à 17:38:23
n°604108
Ayuget
R.oger
Posté le 06-01-2004 à 18:07:25  profilanswer
 

au lieu de faire ca:
 

Code :
  1. mysql_select_db("$bddname", $connect);
  2. $req2 = "SELECT * FROM enlevement WHERE devisnum='$devisnum'";
  3.             $result2=MYSQL_QUERY($req2) or die(mysql_error());
  4.            
  5. mysql_select_db("$bddname", $connect);         
  6. $req3 = "SELECT * FROM livraison WHERE devisnum='$devisnum'";
  7.         $result3=MYSQL_QUERY($req3) or die(mysql_error());


Tu peux réduire en une seule requête:
 

Code :
  1. $req = "SELECT e.*,l.* FROM enlevement e,livraison l WHERE e.devisnum='$devisnum' AND e.devisnum=l.devisnum";


Et pas besoin de resélectionner la base et de refaire la connection a chque requête.


Message édité par Ayuget le 06-01-2004 à 18:07:46
n°604137
freed102
Arayashiki
Posté le 06-01-2004 à 19:13:13  profilanswer
 

j'ai fait des while imbriqués... j'arrive à peu pres à etre satisfait... je sais pas si c t la meilleure methode mais je recupere les variables qu'il me faut.. donc tout va bien ! (j'ai juste peur que ça se melange un peu les crayons à force !!! c un peu complexe là ce que je lui demande à mon programme !! :)))

n°604141
Ayuget
R.oger
Posté le 06-01-2004 à 19:21:10  profilanswer
 

complexe :heink: ?


Message édité par Ayuget le 06-01-2004 à 19:21:18
n°604143
freed102
Arayashiki
Posté le 06-01-2004 à 19:23:37  profilanswer
 

oui pour moi... debutant que je suis.. c complexe !! ya des calculs de prix et de temps, en même temps d'afficher une multitude de variables et de requetes dans plusieurs tables différentes avec des conditions dans tous les sens.... etc etc etc... un vrai casse tete chinois ! lol!

n°604209
mrbebert
Posté le 06-01-2004 à 20:22:53  profilanswer
 

freed102 a écrit :

j'ai fait des while imbriqués... j'arrive à peu pres à etre satisfait... je sais pas si c t la meilleure methode mais je recupere les variables qu'il me faut.. donc tout va bien ! (j'ai juste peur que ça se melange un peu les crayons à force !!! c un peu complexe là ce que je lui demande à mon programme !! :)))  

c'est jamais le programme qui se mélange les pinceaux, mais le programmeur :D  
 
2-3 remarques :
- pas la peine de faire un mysql_select_db() avant chaque requête. Tu le fais une fois au début du script et c'est tout
- dans le dernier while(), j'imagine que c'est le tableau $data3[] que tu dois utiliser, pas $data2[]
- le dernier while ressemble fortement à celui d'avant, il doit y avoir moyen de regrouper [:figti]


Message édité par mrbebert le 06-01-2004 à 20:23:34
mood
Publicité
Posté le 06-01-2004 à 20:22:53  profilanswer
 

n°604212
Ayuget
R.oger
Posté le 06-01-2004 à 20:24:39  profilanswer
 

freed102 a écrit :

oui pour moi... debutant que je suis.. c complexe !! ya des calculs de prix et de temps, en même temps d'afficher une multitude de variables et de requetes dans plusieurs tables différentes avec des conditions dans tous les sens.... etc etc etc... un vrai casse tete chinois ! lol!  


C'est vrai que c'est pas forcément facile quand on débute :)

n°604218
freed102
Arayashiki
Posté le 06-01-2004 à 20:28:43  profilanswer
 

mrbebert a écrit :

c'est jamais le programme qui se mélange les pinceaux, mais le programmeur :D  
 
2-3 remarques :
- pas la peine de faire un mysql_select_db() avant chaque requête. Tu le fais une fois au début du script et c'est tout
- dans le dernier while(), j'imagine que c'est le tableau $data3[] que tu dois utiliser, pas $data2[]
- le dernier while ressemble fortement à celui d'avant, il doit y avoir moyen de regrouper [:figti]


 
Effectivement c une erreur que j'avais corrigé entre temps... maintenant j'arrive à avoir toutes mes variables comme il faut.. mais bon je sais pas si tout ça est propre... mais au moins ça marche ! lol! Merci ! :)


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

  While ... avec plusieurs requetes simultanées...

 

Sujets relatifs
boucle while économiqueservlet, afficher sur plusieurs pages le recordset
Plusieurs questions en JavaRequêtes imrbiquées avec MySQL ?
[DB2] Requetes avec distinct sur une colonneédition ou requêtes vers un fichier .db4
[PERL] Passage de plusieurs array en paramêtre à une fonction[ASP.NET] affiche le resultat sur plusieurs lignes
Executer deux requetes a la suiteFichier .bat qui lance plusieurs programmes...
Plus de sujets relatifs à : While ... avec plusieurs requetes simultanées...


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