Problème d'affichage de date

Eléphant du PHP | 69 Messages

15 oct. 2008, 23:27

Bonjour,

Alors j'ai une bdd, et j'aimerais afficher les évènements du mois en cour et ceux du mois suivant.
J'arrive très bien à afficher le mois en cour, mais le mois suivant je bloque.

Je me trompe ou dans le code ?
$cnx = mysql_connect("yy", "yy", "yy");
    $db = mysql_select_db("yy");
    $mois_actuel=date("n");
    $mois_suivant=date("n+1"); 
    $sql = "select jour, mois, annee, evenement from calendrier where mois= ' $mois_actuel ' and mois= ' $mois_suivant ' order by jour";
    $requete = mysql_query($sql, $cnx);
    $res = mysql_numrows($requete);

echo( "<table border=\"1\" width=\"500\" cellpadding=\"1\" cellspacing=\"1\" align=\"center\">\n" );
echo( "<tr> 
<td bgcolor=\"#b9defc\" width=\"30\"><div align=\"center\">jour</div></td>
<td bgcolor=\"#b9defc\" width=\"150\"><div align=\"center\">mois</div></td>
<td bgcolor=\"#b9defc\" width=\"320\"><div align=\"center\">Manifestation</div></td>
</tr>" );

    while( $result = mysql_fetch_array( $requete ) )
{
$mois10 = ($result['mois']==1) ? 'Janvier' : '';
$mois11 = ($result['mois']==2) ? 'Fevrier' : '';
$mois12 = ($result['mois']==3) ? 'Mars' : '';
$mois13 = ($result['mois']==4) ? 'Avril' : '';
$mois14 = ($result['mois']==5) ? 'Mai' : '';
$mois15 = ($result['mois']==6) ? 'Juin' : '';
$mois16 = ($result['mois']==7) ? 'Juillet' : '';
$mois17 = ($result['mois']==8) ? 'Août' : '';
$mois18 = ($result['mois']==9) ? 'Septembre' : '';
$mois19 = ($result['mois']==10) ? 'Octobre' : '';
$mois20 = ($result['mois']==11) ? 'Novembre' : '';
$mois21 = ($result['mois']==12) ? 'Décembre' : '';


echo( "<tr>\n" );
echo( "<td bgcolor=\"#ffffff\"><div align=\"center\">".$result["jour"]."</div></td>\n" );
echo( "<td bgcolor=\"#ffffff\"><div align=\"center\">".$mois10." ".$mois11." ".$mois12." ".$mois13." ".$mois14." ".$mois15." ".$mois16." ".$mois17." ".$mois18." ".$mois19." ".$mois20." ".$mois21."</div></td>\n" );
echo( "<td bgcolor=\"#ffffff\"><div align=\"center\">".$result["evenement"]."</div></td>\n" );
echo( "</tr>\n" );

}

echo( "</table><br>\n" );
merci d'avance pour votre aide :wink:

Mammouth du PHP | 19672 Messages

16 oct. 2008, 07:36

Regarde donc ta requête :
$sql = "select jour, mois, annee, evenement from calendrier where mois= ' $mois_actuel ' and mois= ' $mois_suivant ' order by jour"; 
Tu voudrais que le mois corresponde au mois en cours ET en même temps au mois suivant : comment cela serait-il possible ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 69 Messages

16 oct. 2008, 16:25

Bonjour,

Mais alors c'est pas possible ?

J'ai essayé encore ceci
$db = mysql_select_db("chess32");
    $mois_actuel=date("n");
    $mois_suivant=date("n+1"); 
    $sql = "select jour, mois, annee, evenement from calendrier where mois= ' $mois_actuel ' order by jour";
    $sql2 = "select jour, mois, annee, evenement from calendrier where mois= ' $mois_suivant ' order by jour";
    $requete = mysql_query($sql, $cnx);
    $requete2 = mysql_query($sql2, $cnx);
Mais j'ai toujours que le mois en cour qui s'affiche et pas le mois suivant.

Je vais continuer à chercher, mais si on pouvait juste m'orienter sans me donner la solution :wink:

Merci d'avance

Mammouth du PHP | 19672 Messages

16 oct. 2008, 16:42

Et pourtant, j'ai indiqué relativement clairement le point où ça pêche : essaye en remplaçant le "AND" par un "OR" et reviens donc nous dire si ça marche mieux :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 4674 Messages

16 oct. 2008, 19:26

Hey :),

Et Cyrano, t'es pas au courant, aujourd'hui on arrive à tordre l'espace temps :roll: … Décidément, tu te fais vieux :D.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 19672 Messages

16 oct. 2008, 19:32

Hey :),

Et Cyrano, t'es pas au courant, aujourd'hui on arrive à tordre l'espace temps :roll: … Décidément, tu te fais vieux :D.
J'ai jamais eu de bonnes notes en mathématiques quantiques :oops:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 4674 Messages

16 oct. 2008, 19:34

On parle de chimie quantique en fait, mais bon, c'est pas grave ;-). Tu ne devais pas être réveillé pendant ces heures de cours :D.
(Ah, c'est pour ça que tu copiais toujours sur moi en examen … :P)
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 19672 Messages

16 oct. 2008, 19:35

CHUUUUT :!: 8-)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
AB
ViPHP | 5818 Messages

16 oct. 2008, 21:37

On parle de chimie quantique en fait, mais bon, c'est pas grave ;-). Tu ne devais pas être réveillé pendant ces heures de cours :D.
(Ah, c'est pour ça que tu copiais toujours sur moi en examen … :P)
Même plus fréquemment de physique ou de mécanique quantique. Et par extension (abus de langage) on dit parfois mathématiques quantique pour les mathématiques du monde quantique.


Sinon pour en revenir au pb initial, sur le principe j'aurais plutôt fait un champs date dans ma bdd et utiliser les fonctions DATE de mysql pour faire des recherches dans la bdd

Eléphant du PHP | 69 Messages

16 oct. 2008, 23:29

Alors j'ai remplacé "AND" par "OR", mais j'ai toujours la même chose. :?
C'est toujours le mois actuel qui s'affiche, alors que je veux l'actuel plus le mois suivant.
$db = mysql_select_db("chess32");
    $mois_actuel=date("n");
    $mois_suivant=date("n+1"); 
    $sql = "select jour, mois, annee, evenement from calendrier where mois= ' $mois_actuel ' OR mois= ' $mois_suivant ' order by jour";
    $requete = mysql_query($sql, $cnx);
C'est pour ça que j'avais mis "AND" dans la fonction à l'origine.

Eléphant du PHP | 69 Messages

17 oct. 2008, 14:54

Au secours, je vois pas, j'y arrive pas.

JE SAIS PLUS QUOI FAIRE :cry:

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

17 oct. 2008, 15:18

Pour débugger il faut afficher le SQL généré déjà :
echo $sql;

Eléphant du PHP | 69 Messages

17 oct. 2008, 21:46

Merci beaucoup à tout le monde.

le
echo $sql;
m'a beaucoup aidé, je m'en rappelerai :wink:

A bientôt, j'ai pas fini de vous embêter :lol:

oups j'oubliais, ça donne ceci
$db = mysql_select_db("chess32");
    $mois_actuel=date(m);
    $mois_suivant=($mois_actuel+1);
    $sql = "select jour, mois, annee, evenement from calendrier where mois= ' $mois_actuel ' or mois = ' $mois_suivant ' order by jour";
    $requete = mysql_query($sql, $cnx);

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

17 oct. 2008, 23:15

Quelques bonnes habitudes à prendre : :pouce:
- sortir les variables des chaines de caractères
- écrire les mots réservés SQL en capitales
- (éventuellement) utiliser les retours à la ligne
$sql = "SELECT jour, mois, annee, evenement
        FROM   calendrier
        WHERE  mois = '".$mois_actuel."'
           OR  mois = '".$mois_suivant."'
        ORDER BY jour";

Eléphant du PHP | 69 Messages

17 oct. 2008, 23:24

C'est vrai que c'est plus clair d'un coup
Je vais en prendre bonne note professeur :lol: :wink: