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 :

Problème de boucle en récupérant les données dans un tableau [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 44
    Par défaut Problème de boucle en récupérant les données dans un tableau
    Bonjour,

    J'ai une table (jos_ecole_animation) qui reçoit des données dans 3 colonnes en particulier (anim_ob, anim_ci, anim_dv).
    Les informations qui arrivent dans ces colonnes proviennent de 3 tables (jos_ecole_animob, jos_ecole_anim_ci, jos_ecole_anim_dv )
    Je veux afficher les résultats de jos_ecole_animation dans un tableau en associant les dates de chaque "anim" et ces dates sont stockées dans les 3 autres tables.
    J'ai écrit le script suivant, tout semble bien se passer, sauf que si une cellule est vide, la date de la cellule précédente s'inscrit ! (cf image jointe).


    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    <?php
    echo "<b>Inscriptions de l'école : $_POST[ecole]</b><br/><br/>";
    if ( isset ($_POST['ecole']))
        {
          $resec = mysql_query("SELECT ecole, nom, prenom, anim_ob, anim_ci, anim_dv, projet FROM jos_ecole_animation WHERE ecole='$_POST[ecole]'") OR die("impossible");
          echo "<table width='100%' border='1' cellpadding='1' cellspacing='1' align='center'>
                     <tr>
                     <td><b>Nom</b></td>
    	             <td><b>Prénom</b></td>
                     <td><b><center>Animation 1</center></b></td>
                     <td><b><center>Animation 2</center></b></td>
                     <td><b><center>Animation 3</center></td>
                    </tr>";
          while ($row=mysql_fetch_array($resec))
            {
     
    $projet=$row[projet];
    $rowanimob=$row[anim_ob];
    $rowanimob = addslashes($rowanimob);
    $rowanimci=$row[anim_ci];
    $rowanimci = addslashes($rowanimci);
    $rowanimdv=$row[anim_dv];
    $rowanimdv = addslashes($rowanimdv);
     
     
    $sql = mysql_query("SELECT date_format(date_1ob,'%d-%m-%y')AS date1ob, date_format(date_2ob,'%d-%m-%y')AS date2ob FROM jos_ecole_animob WHERE animob='$rowanimob'") OR DIE ("IMPOSSIBLE SQL");
    If ( isset($rowanimob))
    {
           while ($rows=mysql_fetch_array($sql))
           {$date1ob = $rows[date1ob];
           $date2ob = $rows[date2ob];}
    }
     
     
    $sql1 = mysql_query("SELECT date_format(date_1,'%d-%m-%y')AS date1ci, date_format(date_2,'%d-%m-%y')AS date2ci FROM jos_ecole_anim_ci WHERE anim = '$rowanimci'") OR DIE ("IMPOSSIBLE1");
    If ( isset($rowanimci))
    {
           while ($rows1=mysql_fetch_array($sql1))
           {$date1ci = $rows1[date1ci];
           $date2ci = $rows1[datecib];}
    }
     
     
    $sql2 = mysql_query("SELECT date_format(date_1,'%d-%m-%y')AS date1dv, date_format(date_2,'%d-%m-%y')AS date2dv FROM jos_ecole_anim_dv WHERE anim_dv = '$rowanimdv'") OR DIE ("IMPOSSIBLE2");
    If ( isset($rowanimdv))
    {
           while ($rows2=mysql_fetch_array($sql2))
           {$date1dv = $rows2[date1dv];
           $date2dv = $rows2[date2dv];}
    }
     
           echo"<tr><td>$row[nom]</td><td>$row[prenom]</td><td><center>$rowanimob<br/>$date1ob et $date2ob</center></td><td><center>$rowanimci<br/>$date1ci et $date2ci</center></td><td><center>$rowanimdv<br/>$date1dv et $date2dv</center></td><tr>";
     
            }
            echo "</table>";
     
        }
    echo "<br/>";
      echo "Projet d'école : $projet";
    echo "<br/>";
    ?>
    Je tourne en rond depuis un moment et je ne trouve pas mon erreur. Merci de m'aider à y voir plus clair.
    Images attachées Images attachées  

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    tu devrais traiter tout cela avec une seule requete et des jointures.

    pour le problème que tu rencontres, si une de trois requetes de dates ne renvoit rien, les dates ne sont pas redefinies et gardent donc leur valeur du tour de boucle précedent.
    tu pourrais vider les 6 variables au depart de la boucle.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 44
    Par défaut
    J'avais commencé par une seule requête mais comme j'avais ce souci, j'ai tout découpé pour essayer de comprendre le blême.
    Quand je lis ta réponse, je me sens un peu bête, ne pas avoir pensé à vider les variables...
    C'est fait, ça marche, je n'ai plus qu'à regrouper mes requêtes.
    Merci pour ton aide

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 31/05/2011, 16h53
  2. Boucles pour récuperer les données d'un tableau dans un autre.
    Par arnold95 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/09/2007, 21h39
  3. Réponses: 1
    Dernier message: 05/07/2007, 18h28
  4. Réponses: 3
    Dernier message: 11/01/2006, 17h44
  5. Trier les données dans 1 tableau par ordre décroissant
    Par Blunet dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 23/11/2005, 09h56

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