comment récupérer toutes les tables qui correspondent à une recherche

comment récupérer toutes les tables qui correspondent à une recherche - PHP - Programmation

Marsh Posté le 22-02-2005 à 15:50:45    

Bonjour tout le monde,
 
Je souhaiterais récupérer l'ensemble des tables qui répondent au critère de la requête SQL que je fais (SELECT * from 'RESERVATION' WHERE nom='$nom'), pour ensuite les efficher dans un tableau sur la page.  
Au départ j'avais fait un mysql_fetch_row du resultat de la query et ensuite je faisais un foreach du tableau récupéré. Le problème c'est que le tableau en question correspondait à la première table répondant au critère, et pas à un tableau de tables. Ensuite, je me suis dit, en lisant la description de mysql_fetch_row que j'allais faire un while(mysql_fetch_row(..)), mais il part en boucle infinie.
Pourriez-vous me dire ce que je dois faire pour arriver au résultat escompté ?
 
Merci beaucoup

Reply

Marsh Posté le 22-02-2005 à 15:50:45   

Reply

Marsh Posté le 22-02-2005 à 15:53:02    

[quote=989958,0,1,218207]
Pourriez-vous me dire ce que je dois faire pour arriver au résultat escompté ?[/quote]
Poster ton bout de code qui te fait une boucle infinie.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 22-02-2005 à 15:53:50    

lapin compris...
 
ta requete va chercher dans la table RESERVATION (tes quotes servent à rien à ce niveau là) et en sélectionne tous les champs (because t'a mis SELECT *) dès que le champs "nom" d'un enregistrement correspond à la variable "nom"...
 
Je ne vois pas ce que tu entend par " récupérer l'ensemble des tables"...


Message édité par Xav_ le 22-02-2005 à 15:54:14

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 22-02-2005 à 15:53:52    

donne ton code !
nous on peut pas le veniner :o


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 22-02-2005 à 15:54:57    

[quote=989964,0,2,46149]Poster ton bout de code qui te fait une boucle infinie.[/quote]
 
ok :
 

Code :
  1. // traitement de la demande
  2.    if(!empty($_POST)){
  3.         
  4.              // formulation de la requete a la base de donnees
  5.              $query = 'SELECT *'. ' FROM `RESERVATION` '. 'WHERE ';
  6.              if ($_POST["category"]=="nom" ){
  7.                  $query.= 'nom_client=\''.$_POST["search"].'\'';
  8.              }
  9.                                           elseif ($_POST["category"]=="date" ){
  10.                  $query.= 'date_reservation=\''.$_POST["search"].'\'';
  11.              }
  12.                                           elseif ($_POST["category"]=="service" ){
  13.                  $query.= 'service=\''.$_POST["search"].'\'';
  14.              }
  15.              else {
  16.                                               $id=substr($_POST["search"], 8);
  17.                  $query.= 'id=\''.$id.'\'';
  18.              }
  19.    }
  20.    // recuperation des donnees
  21.    echo '<div class="scrollable">';
  22.                                
  23.                                 while ($reservation = mysql_fetch_row(mysql_query($query))){


 
Après j'affiche les différentes lignes des tables dans un tableau pour chaque table. Enfin c'est ce que je voudrais faire.

Reply

Marsh Posté le 22-02-2005 à 15:58:23    

Normal.
Il faut faire comme ça :

Code :
  1. //exécution de la requete
  2. $result = mysql_query($query);
  3. //on boucle sur les résultats
  4. while($row = mysql_fetch_row($result)){
  5. //tes trucs.
  6. }


 
Là tu réexécutes la requête à chaque tour de boucle...


Message édité par skeye le 22-02-2005 à 15:59:10

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 22-02-2005 à 16:00:06    

Et bien oui, c'est parce que je n'ai pas bien compris la commande sans aucun doute, d'où ma question. Je fais ça pour avoir une table correspondant à ma recherche a chaque tour de boucle, jusqu'à ce qu'il n'y ait plus de table qui corresponde. Selon toute évidence, il ne s'agit pas de la bonne méthode, mais je ne trouve pas comment faire.

Reply

Marsh Posté le 22-02-2005 à 16:01:44    

essaye d'utiliser les bons termes ! une requete ne revois pas des tables :o


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 22-02-2005 à 16:02:44    

[quote=989996,0,8,25631]essaye d'utiliser les bons termes ! une requete ne revois pas des tables :o[/quote]
kler, j'ai déjà du mal à comprendre ce qu'il veut faire...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 22-02-2005 à 16:03:00    

Bien, je ne sais pas trop comment l'expliquer alors. Je voudrais, récupérer un tableau de tableau en fait, chaque sous tableau étant l'équivalent de ce que je n'ai pas le droit d'appeler table.

Reply

Marsh Posté le 22-02-2005 à 16:03:00   

Reply

Marsh Posté le 22-02-2005 à 16:03:53    

[quote=989989,0,7,218207]Et bien oui, c'est parce que je n'ai pas bien compris la commande sans aucun doute, d'où ma question. Je fais ça pour avoir une table correspondant à ma recherche a chaque tour de boucle, jusqu'à ce qu'il n'y ait plus de table qui corresponde. Selon toute évidence, il ne s'agit pas de la bonne méthode, mais je ne trouve pas comment faire.[/quote]
 
Je t'ai donné la réponse, hein! [:dawa]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 22-02-2005 à 16:04:22    

alors la c'est encore moins clair...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 22-02-2005 à 16:05:15    

[quote=989997,0,9,133772]kler, j'ai déjà du mal à comprendre ce qu'il veut faire...[/quote]
 
Il veut parcourir tous les résultats de sa requête ligne par ligne, c'est tout...:o
Et il aurait voulu récupérer toutes les lignes dans un tableau de lignes, parce-qu'il a pas réussit à faire fonctionner son while(mysql_fetch_row())


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 22-02-2005 à 16:05:59    

[quote=989997,0,9,133772]kler, j'ai déjà du mal à comprendre ce qu'il veut faire...[/quote]
 
par exemple :
 

Code :
  1. // traitement de la demande
  2.    if(!empty($_POST)){
  3.         
  4.              // formulation de la requete a la base de donnees
  5.              $query = 'SELECT *'. ' FROM `RESERVATION` '. 'WHERE ';
  6.              if ($_POST["category"]=="nom" ){
  7.                  $query.= 'nom_client=\''.$_POST["search"].'\'';
  8.              }
  9.                                           elseif ($_POST["category"]=="date" ){
  10.                  $query.= 'date_reservation=\''.$_POST["search"].'\'';
  11.              }
  12.                                           elseif ($_POST["category"]=="service" ){
  13.                  $query.= 'service=\''.$_POST["search"].'\'';
  14.              }
  15.              else {
  16.                                               $id=substr($_POST["search"], 8);
  17.                  $query.= 'id=\''.$id.'\'';
  18.              }
  19.    }
  20.    // recuperation des donnees
  21.    echo '<div class="scrollable">';
  22.                                
  23.                                 while ($reservation = mysql_fetch_row(mysql_query($query))){
  24.                                                                            
  25.                                         echo "reservation : ".$reservation."<br/>";
  26.     echo "<table class=\"reservation\">";
  27. /*------------------------------------------------------------------------------------------------------------------------------------------*/
  28. /*                                             traitement des reservations de limousine                                                     */
  29. /*------------------------------------------------------------------------------------------------------------------------------------------*/
  30.     if($reservation[4]=="limousine" ){
  31.             echo '<tr>';
  32.       echo '<td class="intitule">code<td/>';
  33.       $code = (db_to_date($reservation[1])).$reservation[0];
  34.       echo '<td class="contenu">'.$code.'<td/>';
  35.      echo '<tr/>';
  36.      echo '<tr>';
  37.       echo '<td class="intitule">service<td/>';
  38.       echo '<td class="contenu">'.$reservation[5].'<td/>';
  39.      echo '<tr/>';
  40.      echo '<tr>';
  41.       echo '<td class="intitule">date du transfer<td/>';
  42.       echo '<td class="contenu">'.$reservation[6].'<td/>';
  43.      echo '<tr/>';
  44.      echo '<tr>';
  45.       echo '<td class="intitule">nom du client<td/>';
  46.       echo '<td class="contenu">'.$reservation[2].' '.$reservation[3].'<td/>';
  47.      echo '<tr/>';
  48.      echo '<tr>';
  49.       echo '<td class="intitule">telephone<td/>';
  50.       $query_client = 'SELECT telephone FROM `CLIENT` WHERE nom = \''.$reservation[3].'\' AND prenom = \''.$reservation[2].'\'';
  51.       $res = mysql_fetch_row(mysql_query($query_client)) or die (mysql_error());
  52.                      $res = $res[0];
  53.       echo '<td class="contenu">'.$res.'<td/>';
  54.      echo '<tr/>';
  55.      echo '<tr>';
  56.       echo '<td class="intitule">email<td/>';
  57.       $query_client = 'SELECT email FROM `CLIENT` WHERE nom = \''.$reservation[3].'\' AND prenom = \''.$reservation[2].'\'';
  58.       $res = mysql_fetch_row(mysql_query($query_client)) or die (mysql_error());
  59.                      $res = $res[0];
  60.       echo '<td class="contenu"><a href="mailto:'.$res.'">'.$res.'</a><td/>';
  61.      echo '<tr/>';
  62.      echo '<tr>';
  63.       echo '<td class="intitule">nombre de passagers<td/>';
  64.       echo '<td class="contenu">'.$reservation[8].'<td/>';
  65.      echo '<tr/>';
  66.      echo '<tr>';
  67.       echo '<td class="intitule">nom d`un passager<td/>';
  68.       echo '<td class="contenu"><td/>';
  69.      echo '<tr/>';
  70.      echo '<tr>';
  71.       echo '<td class="intitule">adresse de residence<td/>';
  72.       echo '<td class="contenu">'.$reservation[9].'<td/>';
  73.      echo '<tr/>';
  74.      echo '<tr>';
  75.       echo '<td class="intitule">parcours<td/>';
  76.       echo '<td class="contenu">'.$reservation[18].'<td/>';
  77.      echo '<tr/>';
  78.      if ($reservation[10]=="CDG" || $reservation[10]=="Orly" ){
  79.       
  80.                                                          echo '<tr>';
  81.                echo '<td class="intitule">aeroport<td/>';
  82.                echo '<td class="contenu">'.$reservation[10].'<td/>';
  83.               echo '<tr/>';
  84.               echo '<tr>';
  85.                echo '<td class="intitule">numero du vol<td/>';
  86.                echo '<td class="contenu">'.$reservation[11].'<td/>';
  87.               echo '<tr/>';
  88.                                                          echo '<tr>';
  89.                echo '<td class="intitule">heure du vol<td/>';
  90.                echo '<td class="contenu">'.$reservation[7].'<td/>';
  91.               echo '<tr/>';
  92.               echo '<tr>';
  93.                echo '<td class="intitule">provenance<td/>';
  94.                echo '<td class="contenu">'.$reservation[12].'<td/>';
  95.               echo '<tr/>';
  96.      }
  97.      else {
  98.           
  99.               echo '<tr>';
  100.                echo '<td class="intitule">heure du transfer<td/>';
  101.                echo '<td class="contenu">'.$reservation[7].'<td/>';
  102.               echo '<tr/>';
  103.           
  104.      }
  105.      echo '<tr>';
  106.       echo '<td class="intitule">numero de carte<td/>';
  107.       echo '<td class="contenu">'.$reservation[21].'<td/>';
  108.      echo '<tr/>';
  109.      echo '<tr>';
  110.       echo '<td class="intitule">date d`expiration<td/>';
  111.       echo '<td class="contenu">'.$reservation[22].'<td/>';
  112.      echo '<tr/>';
  113.      echo '<tr>';
  114.       echo '<td class="intitule">les 3 chiffres<td/>';
  115.       echo '<td class="contenu">'.$reservation[23].'<td/>';
  116.      echo '<tr/>';
  117.      echo '<tr>';
  118.       echo '<td class="intitule">tarif';
  119.                                                         if ($reservation[26]=="false" ){
  120.                                                              echo '<img src="./picture_library/false.gif"/>';
  121.                                                         }
  122.                                                         else{
  123.                                                              echo '<img src="./picture_library/true.gif"/>';
  124.                                                         }
  125.                                                         echo'<td/>';
  126.       echo '<td class="contenu">'.$reservation[24].'<td/>';
  127.      echo '<tr/>';
  128.      if (!empty($reservation[25])){
  129.       echo '<tr>';
  130.        echo '<td class="intitule">commentaires<td/>';
  131.        echo '<td class="contenu">'.$reservation[25].'<td/>';
  132.       echo '<tr/>';
  133.      }
  134.     }// fin de traitement des limousines


 
(sachant que la boucle est mauvaise), je voudrait prospecter ma base de données pour trouver toutes les réservations qui y sont stockées, ayant telle personne comme client. Ensuite, à partir de toutes ces réservations, je voudrais faire un affichage.
Suis-je plus clair ?

Reply

Marsh Posté le 22-02-2005 à 16:08:10    

[quote=990001,0,11,46149]Je t'ai donné la réponse, hein! [:dawa][/quote]
 
autant pour moi, j'ai les yeux dans le vague sans doute  :D

Reply

Marsh Posté le 22-02-2005 à 16:08:40    

Je suis transparent?
 
[quote=989984,6,0,46149]Normal.
Il faut faire comme ça :

Code :
  1. //exécution de la requete
  2. $result = mysql_query($query);
  3. //on boucle sur les résultats
  4. while($row = mysql_fetch_row($result)){
  5. //tes trucs.
  6. }


 
Là tu réexécutes la requête à chaque tour de boucle...[/quote]
 
[edit]
 
ah quand même!:o


Message édité par skeye le 22-02-2005 à 16:08:59

---------------
Can't buy what I want because it's free -
Reply

Sujets relatifs:

Leave a Replay

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