IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Boucle SQL dans une boucle for [Fait]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 37
    Par défaut [SQL] Boucle SQL dans une boucle for
    Bonjour,

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

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?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

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Bonjour

    Utilise mysql_data_seek
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Par défaut
    Je verrai la chose plutot comme ça, dis moi si ca te va:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php 
    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>'; 
           $verif = mysql_query('SELECT * FROM calendrier WHERE Date='.date("Ymd").' and h_begin='.$i) or die(mysql_error());
           while ($show = mysql_fetch_array($verif)) { 
            echo 'Voici show : ', $show['h_begin'], 'et $i : ', $i;
            echo '<br />'; 
            if ($show['valid'] == 0) 
               echo 'Non validé'; else echo 'Validé'; 
     
            }
     
    echo '</td>'; echo '</tr>'; 
    }
    echo '<table>'; ?>
    Sinon un data_seek, je ne me souviens plus de la syntaxe exacte devrait fonctionner en gardant ta structure.

  4. #4
    Membre éprouvé
    Inscrit en
    Mai 2002
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2002
    Messages : 101
    Par défaut
    Perso, j'aurais fetché toutes les infos dans un array PHP et je l'utiliserais ensuite dans mon while.

    Sinon, j'ai jamais utilisé cette fonction, mais ça devrait fonctionner : http://ch2.php.net/manual/en/functio...-data-seek.php

    Edit de Cold Hand : Oula, y a embouteillage pour la réponse

  5. #5
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 37
    Par défaut
    Merci pour vos réponses rapide !

    Pour ta solution Raideman, en faite j'auraispu l'utiliser si mon appel mysql_query était toujours le même malheureusement ce n'est pas le cas.
    J'ai peut-être une idée mais je ne peux pas le tester (pas chez moi).

    Sinon je vais tester ce que vous m'avez dit !

    Merci beaucoup

    Je vous tient au courant !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PDO] Une boucle while dans une boucle while
    Par subran dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 28/02/2015, 19h32
  2. [MySQL] Calcule dans une boucle mysql dans un echo
    Par sinifer dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 07/05/2009, 12h40
  3. Réponses: 1
    Dernier message: 09/05/2008, 16h35
  4. Effectuer une boucle (foreach) dans une procédure stockée ?!
    Par Danny Blue dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 16/11/2007, 16h02
  5. Réponses: 3
    Dernier message: 29/08/2007, 17h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo