Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/09/2011, 11h52   #1
Nouveau Membre du Club
 
Homme
Inscription : décembre 2009
Messages : 144
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2009
Messages : 144
Points : 30
Points : 30
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 :
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 = "";
}
Budy123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 12h19   #2
Membre Expert
 
Avatar de Doksuri
 
Tiger Scott
Développeur Web
Inscription : juin 2006
Messages : 1 248
Détails du profil
Informations personnelles :
Nom : Tiger Scott
Âge : 42

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2006
Messages : 1 248
Points : 1 506
Points : 1 506
Code php :
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.

N'oubliez pas le Le tag resolu.

Need_!
Doksuri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 12h36   #3
Nouveau Membre du Club
 
Homme
Inscription : décembre 2009
Messages : 144
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Code :
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 = "";
            }
Budy123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 12h48   #4
Nouveau Membre du Club
 
Homme
Inscription : décembre 2009
Messages : 144
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2009
Messages : 144
Points : 30
Points : 30
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 :
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>";
}
Budy123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 12h49   #5
Membre Expert
 
Avatar de Doksuri
 
Tiger Scott
Développeur Web
Inscription : juin 2006
Messages : 1 248
Détails du profil
Informations personnelles :
Nom : Tiger Scott
Âge : 42

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2006
Messages : 1 248
Points : 1 506
Points : 1 506
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.

N'oubliez pas le Le tag resolu.

Need_!
Doksuri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 12h57   #6
Nouveau Membre du Club
 
Homme
Inscription : décembre 2009
Messages : 144
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2009
Messages : 144
Points : 30
Points : 30
Si j'enleve le if, le resulat va renseigner tous les cases(date) de mon planning.
Et effectivement ma requete envoie bien plusieurs resultats.
Budy123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 13h47   #7
Invité régulier
 
Inscription : mai 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 12
Points : 7
Points : 7
$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 :
1
2
 
$eventsHere .= "<br> ".$nbrEvents1['id']."<br> ";
ou bien sous forme de tableau :
Code :
1
2
3
4
 
$eventsHere[] = $nbrEvents1['id'];
 
echo implode('<br />', $eventsHere);
jinfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 13h49   #8
Candidat au titre de Membre du Club
 
Développeur Web
Inscription : juin 2009
Messages : 11
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Madagascar

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2009
Messages : 11
Points : 13
Points : 13
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 :
1
2
 
while ($nbrEvents1 = mysql_fetch_assoc($extraire1)) {<blockquote>$eventsHere .= "<br> ".$nbrEvents1['id']."<br> ";</blockquote>}
Begany est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 13h50   #9
Candidat au titre de Membre du Club
 
Développeur Web
Inscription : juin 2009
Messages : 11
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Madagascar

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2009
Messages : 11
Points : 13
Points : 13
Grillé, oui essai la concaténation ou le tabeau
Begany est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 20h40   #10
Nouveau Membre du Club
 
Homme
Inscription : décembre 2009
Messages : 144
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2009
Messages : 144
Points : 30
Points : 30
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 :
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>";
}
Budy123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h50.


 
 
 
 
Partenaires

Hébergement Web