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 :

Ajouter une boucle While


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Par défaut Ajouter une boucle While
    Bonjour,

    Je dois modifier un code concernant un planning, pour ce faire je dois effectuer une boucle sur ma colonne 'titre', mais je n'arrive pas à placer dans mon While dans le code.
    Dans le code ci-dessous il ne m'affiche que la première ligne de ma requete.
    Quelqu'un peut -il m'éclairer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $extraire1 = mysql_query("select * from agenda_events WHERE date='$dateLa'");
    $nbrEvents1 = mysql_fetch_assoc($extraire1);
    if ($nbrEvents1 > 0) {
    $eventsHere = " <span class=\"gros\">* ".$nbrEvents1['titre']."</span>";
    } else {
                    $eventsHere = "";
    }

  2. #2
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 495
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 495
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $extraire1 = mysql_query("select * from agenda_events WHERE date='$dateLa'");
    while ($nbrEvents1 = mysql_fetch_assoc($extraire1)) {
    $eventsHere = " <span class=\"gros\">* ".$nbrEvents1['titre']."</span>";
    }
    non ?
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Par défaut
    J'ai éssayé en ajoutant le code, mais maintenant il affiche la dernière ligne de ma boucle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $extraire1 = mysql_query("select * from agenda_events WHERE date='$dateLa'");
    $nbrEvents1 = mysql_fetch_assoc($extraire1);
    if ($nbrEvents1 > 0) {
    while ($nbrEvents1 = mysql_fetch_assoc($extraire1)) {
    $eventsHere = " <span class=\"gros\">".$nbrEvents1['titre']."</span>";
    						}
                } else {
                    $eventsHere = "";
                }

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Par défaut
    En faite j'ai oublié un bout de code qui dois faire toute la différence, le $eventsHere est rapellé sur la ligne du dessous mais pas avec un while, le problème doit surement venir d'ici.
    Mais je vois pas comment inclure ma boucle.


    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
     
    foreach ($weeks AS $week)
    {
     
        $site_Content .= "<tr height=\"20\">";
     
        foreach ($week as $d)
        {
     
            if ($i < $offset_count) {
                $day_link = $d;
                $site_Content .= "<td class=\"nonmonthdays\">$day_link</td>";
            }
     
            if (($i >= $offset_count) && ($i < ($num_weeks * 7) - $outset)) {
     
                $dateLa = mktime(0, 0, 0, $month, $d, $year);
                    $extraire1 = mysql_query("select * from agenda_events WHERE date='$dateLa'");
                    $nbrEvents1 = mysql_fetch_assoc($extraire1);
                  if ($nbrEvents1 > 0) {
                    while ($nbrEvents1 = mysql_fetch_assoc($extraire1)) {
    						$eventsHere = "<br> ".$nbrEvents1['id']."<br> ";
    						}
                } else {
                    $eventsHere = "";
                }
     
     
                $day_link = "<a href=\"./?a=agenda&date=" . mktime(0, 0, 0, $month, $d, $year) . "\">$d</a> $eventsHere ";
                if ($la == mktime(0, 0, 0, $month, $d, $year)) {
                    $site_Content .= "<td class=\"today\">$day_link</td>";
                } elseif ($day == $d) {
                    $site_Content .="<td class=\"clic\">$day_link</td>";
                } else {
                    $site_Content .= "<td class=\"days\">$day_link</td>";
                }
     
            } elseif (($outset > 0)) {
     
                if (($i >= ($num_weeks * 7) - $outset)) {
                    $day_link = $d;
                    $site_Content .= "<td class=\"nonmonthdays\">$day_link</td>";
                }
     
            }
     
            $i++;
        }
        $site_Content .= "</tr>";
    }

  5. #5
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 495
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 495
    Par défaut
    t'as essaye mon code ? (sans ton if)
    t'as verifie (avec php myadmin, ou autre) que ta requete sql te renvois bien plusieurs resultats ?
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Par défaut
    Si j'enleve le if, le resulat va renseigner tous les cases(date) de mon planning.
    Et effectivement ma requete envoie bien plusieurs resultats.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 12
    Par défaut
    $eventsHere est écrasé à chaque fois non ?
    S'il y a plusieurs réponses au résultat de ta requête j'ajouterais le point de concaténation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $eventsHere .= "<br> ".$nbrEvents1['id']."<br> ";
    ou bien sous forme de tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $eventsHere[] = $nbrEvents1['id'];
     
    echo implode('<br />', $eventsHere);

  8. #8
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Par défaut Boucle while
    C'est normal si ça ne renvoie que la dernière ligne parceque la valeur de $eventHere change tout le temps.

    Essai en concaténant comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    while ($nbrEvents1 = mysql_fetch_assoc($extraire1)) {
    <div style="margin-left:40px">$eventsHere .= "<br> ".$nbrEvents1['id']."<br> ";</div>}

  9. #9
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Par défaut
    Grillé, oui essai la concaténation ou le tabeau

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Par défaut
    Merci popur vos réponses, effectivement ça m'affiche bien la boucle, cependant maintenant il affiche ma boucle dans tous les cases (date) de mon planning à partir du moment ou il y a un resultats pour cette date.
    Alors que lorsque j'enleve la boucle il ne duplique pas mon résultats.

    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
     
    foreach ($week as $d)
        {
     
            if ($i < $offset_count) {
                $day_link = $d;
                $site_Content .= "<td class=\"nonmonthdays\">$day_link</td>";
            }
     
            if (($i >= $offset_count) && ($i < ($num_weeks * 7) - $outset)) {
     
                $dateLa = mktime(0, 0, 0, $month, $d, $year);
                    $extraire1 = mysql_query("select * from agenda_events WHERE date='$dateLa'");
                    $nbrEvents1 = mysql_fetch_assoc($extraire1);
                  if ($nbrEvents1 > 0) { 
    							while ($nbrEvents1 = mysql_fetch_assoc($extraire1)) {$eventsHere .= "<br>".$nbrEvents1['titre']."";}
                } else {
                    $eventsHere = "";
                }
     
     
                $day_link = "<a href=\"./?a=agenda&date=" . mktime(0, 0, 0, $month, $d, $year) . "\">$d</a> $eventsHere";
                if ($la == mktime(0, 0, 0, $month, $d, $year)) {
                    $site_Content .= "<td class=\"today\">$day_link</td>";
                } elseif ($day == $d) {
                    $site_Content .="<td class=\"clic\">$day_link</td>";
                } else {
                    $site_Content .= "<td class=\"days\">$day_link</td>";
                }
     
            } elseif (($outset > 0)) {
     
                if (($i >= ($num_weeks * 7) - $outset)) {
                    $day_link = $d;
                    $site_Content .= "<td class=\"nonmonthdays\">$day_link</td>";
                }
     
            }
     
            $i++;
        }
        $site_Content .= "</tr>";
    }

Discussions similaires

  1. [Tkinter] Méthode get() dans une boucle while
    Par Thundie dans le forum Tkinter
    Réponses: 2
    Dernier message: 04/02/2006, 00h06
  2. Problème de SCANF dans une boucle WHILE
    Par FidoDido® dans le forum C
    Réponses: 4
    Dernier message: 30/12/2005, 17h42
  3. [Conception] Problème de test dans une boucle while
    Par Cyrius dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/11/2005, 18h07
  4. Réponses: 6
    Dernier message: 17/06/2005, 16h51
  5. [MFC] Dialog dans une boucle while
    Par oxor3 dans le forum MFC
    Réponses: 5
    Dernier message: 23/04/2004, 22h51

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