Boucle SQL dans une boucle for

Répondre
Also know as
Also know as
Déconnecté
Bonjour,

Je suis dans un petite problème que je n'arrive pas à résoudre pour le coup...

Voici mon code :
  1. <?php
  2. $verif = mysql_query('SELECT * FROM calendrier WHERE Date='.date("Ymd")) or die(mysql_error()); 
  3.          echo '<table>'; 
  4.          for ($i = 8; $i <= 19; $i++) 
  5.          { 
  6.             echo '<tr>'; 
  7.             echo '<td width="15%">'; 
  8.                if ($i < 10) 
  9.                   echo '0'; 
  10.             echo $i, ':00</td>'; 
  11.             echo '<td>'; 
  12.             while ($show = mysql_fetch_array($verif)) 
  13.             { 
  14.                echo 'Voici show : ', $show['h_begin'], 'et $i : ', $i; 
  15.                if ($show['h_begin'] == $i) 
  16.                { 
  17.                   echo $show['evenement'], '<br />'; 
  18.                   if ($show['valid'] == 0) 
  19.                      echo 'Non validé'; 
  20.                   else 
  21.                      echo 'Validé'; 
  22.                } 
  23.             } 
  24.             echo '</td>'; 
  25.             echo '</tr>'; 
  26.          } 
  27.          echo '<table>';  
  28. ?> 


Et si vous arrivez à éxecuter ce code en faite, j'aimerais qu'a chaque avancé du tableazu "d'heure" (la boucle for) il fasse une recherche SQL poru savoir s'il à trouvé quelque chose dans la base de donnée qui correspondait à l'heure et si c'est le cas l'affiché.

Avec un petit test j'ai pu me rendre compte qu'il ne fait cette boucle WHILE qu'une seule fois, la toute première fois.

Donc comment faire pour que la variable $show revienne au début de la table SQL ?

Merci :)
Amery
Amery
Déconnecté
Salut,

et comme ça ?

  1.  
  2. echo '<table>';
  3. for ($i = 8; $i <= 19; $i++)
  4. {
  5.    echo '<tr><td width="15%">',sprintf('%02d',$i),':00<td>';
  6.    $verif = mysql_query('SELECT * FROM calendrier WHERE Date='.date("Ymd")) or die(mysql_error());
  7.    while($show = mysql_fetch_array($verif))
  8.    {
  9.       echo 'Voici show : ', $show['h_begin'], 'et $i : ', $i;
  10.       if ($show['h_begin'] == $i)
  11.       {
  12.          echo $show['evenement'], '<br />';
  13.          echo ($show['valid']==0) ? 'Validé': 'Non validé';
  14.       }
  15.    }
  16.    echo '</td>';
  17.    echo '</tr>';
  18. }
  19. echo '</table>';
  20.  
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
C'est horrible de faire une requete SQL dans une boucle.
Autant tout selecter d'un coup, et faire le tri derrière en PHP.
Necnom
Necnom
Déconnecté
Necnom :)
Abon ? parce que moi je n'ai jamais eu aucun problème. J'ai même déja fait des boucles dans des boucles ^^
Enfin ... pour moi il n'y a jamais eu de problème. Mais comme c'est déconseillé, il faudrait alors que je revoie une bonne partie de mes scripts.
Bzh
Bzh
Déconnecté
Dis donc... Pauvre serveur SQL !
Il faut toujours limiter le nombre de requetes à la BDD quitte à traiter le résultat avec PHP ensuite !

Sinon, ton application ne tiendra pas le cou sous la charge !
Also know as
Also know as
Déconnecté
ui je sais que cela est très moche mais malheureusement je ne sais pas faire autrement !

Comment tout prendre en compte et ensuite le traiter avec php uniquement ?

Bon faire un array tout ça, etc.

Mais mon problème c'est que je ne sais pas utiliser les tableaux ! Enfin si, mais très mal malheureusement...
Necnom
Necnom
Déconnecté
Necnom :)
Genre, tu fais toutes les requêtes même si tu as plein d'informations inutiles, et tu les reclasses toi même. ^^
C'est pas beau mais au moins ton serveur ne plante pas ^^
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Breizh Blog