[php] fonction while

kikong Messages postés 23 Date d'inscription samedi 6 août 2005 Statut Membre Dernière intervention 9 janvier 2008 - 22 nov. 2007 à 20:45
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 23 nov. 2007 à 20:51
Bonjour la communauté!

 
Voila, je code un calendrier en php/mysql, et j'ai un petit problème.

Enfait, j'ai fais une boucle permettant de prendre toutes les dates

enregistrées dans ma base de données,et ensuite de les inscrire dans

le calendrier. Mais j'ai aussi un champ text dans cette table de ma

base de donnée, et j'aimerais prendre le titre de chaque date. Pour le

moment, mon code me prend le même titre pour toutes les dates! Il faut

que je prenne le titre de chacune des dates...mais je ne sais pas

comment faire!

 
Voici le code :

 $requete mysql_query("SELECT * FROM calendrier WHERE YEAR(jour)

$an     AND MONTH(jour) = $mois" );

$i=0;

while ($ligne = mysql_fetch_array($requete)){

        $titre = $ligne["titre"];

        $i++;

        // recupartion du jour ou il y a la reservation

        $jours = $ligne["jour"];

        // transforme aaaa/mm/jj en jj

        $jour_reserve = (int)substr($jours, 8, 2);

        // insertion des jours reservé dans le tableau

        $tab_jours[$jour_reserve] = (bool)true;

 
        $titre = (bool)true;

 
}

 
Merci d'avance,

6 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
22 nov. 2007 à 20:52
Salut,

Peut-être incrémenter $i avant de récupérer le titre... ?

$titre = $ligne["titre"];
$i++;

=>

$i++;
$titre = $ligne["titre"];

Sinon, une boucle for ce serait un peu plus joli, ne serait-ce que pout ton compteur qui ne pourrait pas se trouver au mauvais endroit...
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
22 nov. 2007 à 21:15
Hello,

moi je n'ai rien compris. Il sert où le $i ??
Au passage, (bool) true ne sert absolument à rien. Tu convertis un booléen en booléen. "true" est déjà un booléen.
Si tu fais (bool) 1
là ok, je comprends.
mais (bool) true
non.
0
kikong Messages postés 23 Date d'inscription samedi 6 août 2005 Statut Membre Dernière intervention 9 janvier 2008
22 nov. 2007 à 21:28
En fait c'est un code qui vient du site et que j'essaye de changer à ma façon, c'est pour cela que pour le booléen, je ne savais pas.

J'ai enlever le true et j'ai mis $i++; avant la variable titre, mais cela ne fonctionne toujours pas.

Qu'entend-tu par faire une boucle for?
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
22 nov. 2007 à 22:46
Mmm... Ouais, le $i++ sert à rien dans cette boucle. Il sert peut-être à compter le nombre d'enregistrement retournés par la requête...? Auquel cas, c'est vraiment inutile.

Sinon, il faudrait peut-être que tu en fasses quelque chose de ton $titre, sinon, forcément, tu n'en obtiens rien... Une fois que tu récupères le titre, tu fais plein de choses avec la date, puis tu écrases le titre en mettant true dans la variable...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kikong Messages postés 23 Date d'inscription samedi 6 août 2005 Statut Membre Dernière intervention 9 janvier 2008
23 nov. 2007 à 18:55
Salut,

Enfait mon $titre va après dans mon calendrier, mais je ne vois pas comment coder pour avoir le bon titre à la bonne date.
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
23 nov. 2007 à 20:51
Salut,

Utilise un tableau indexé numériquement.

$result mysql_query("SELECT * FROM calendrier WHERE YEAR(jour)
$an AND MONTH(jour) = $mois" );

$nb_results = mysql_num_rows($result);
for ($i=0 ; $i < $nb_results ; $i++) {
$resa[$i][] = mysql_fetch_assoc($result);
$jours[] = $resa[$i]['jour']
}

Tu as un tableau qui contient tous les jours ayant une date ($jours). Et un autres ($resa) qui contient les information pour chaque jour.

Pour le 23ème jour, le titre tu l'as comme ça en récupérant la bonne entrée du tableau $resa : $resa[$jour[23]]['titre']

Bon c'est fait vite fait, et sans voir le reste de ton code, donc désolé si c'est un peu crade... Et puis j'ai pas testé non plus, c'est surtout pour que tu voies un peu la piste à suivre.
0
Rejoignez-nous