Boucle SQL dans une boucle for

Répondre
Also know as
le 13/08/2007 à 16:09
Also know as
Bonjour,

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

Voici mon code :
<?php
$verif = mysql_query('SELECT * FROM calendrier WHERE Date='.date("Ymd")) or die(mysql_error());
echo '<table>';
for ($i = 8; $i <= 19; $i++)
{
echo '<tr>';
echo '<td width="15%">';
if ($i < 10)
echo '0';
echo $i, ':00</td>';
echo '<td>';
while ($show = mysql_fetch_array($verif))
{
echo 'Voici show : ', $show['h_begin'], 'et $i : ', $i;
if ($show['h_begin'] == $i)
{
echo $show['evenement'], '<br />';
if ($show['valid'] == 0)
echo 'Non validé';
else
echo 'Validé';
}
}
echo '</td>';
echo '</tr>';
}
echo '<table>';
?>


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
le 14/08/2007 à 11:53
Amery
Salut,

et comme ça ?

echo '<table>';
for ($i = 8; $i <= 19; $i++)
{
echo '<tr><td width="15%">',sprintf('%02d',$i),':00<td>';
$verif = mysql_query('SELECT * FROM calendrier WHERE Date='.date("Ymd")) or die(mysql_error());
while($show = mysql_fetch_array($verif))
{
echo 'Voici show : ', $show['h_begin'], 'et $i : ', $i;
if ($show['h_begin'] == $i)
{
echo $show['evenement'], '<br />';
echo ($show['valid']==0) ? 'Validé': 'Non validé';
}
}
echo '</td>';
echo '</tr>';
}
echo '</table>';
LA GLOBULE
le 14/08/2007 à 12:06
LA GLOBULE
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
le 15/08/2007 à 01:21
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.
Necnom :)
Bzh
le 15/08/2007 à 16:38
Bzh
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
le 15/08/2007 à 17:34
Also know as
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
le 16/08/2007 à 05:09
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 ^^
Necnom :)
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours