Page 1 sur 1

Problème d'affichage de date

Posté : 15 oct. 2008, 23:27
par coucou
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:

Posté : 16 oct. 2008, 07:36
par Cyrano
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 ?

Posté : 16 oct. 2008, 16:25
par coucou
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

Posté : 16 oct. 2008, 16:42
par Cyrano
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

Posté : 16 oct. 2008, 19:26
par Hywan
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.

Posté : 16 oct. 2008, 19:32
par Cyrano
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:

Posté : 16 oct. 2008, 19:34
par Hywan
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)

Posté : 16 oct. 2008, 19:35
par Cyrano
CHUUUUT :!: 8-)

Posté : 16 oct. 2008, 21:37
par AB
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

Posté : 16 oct. 2008, 23:29
par coucou
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.

Posté : 17 oct. 2008, 14:54
par coucou
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]

Posté : 17 oct. 2008, 15:18
par ouckileou
Pour débugger il faut afficher le SQL généré déjà :
echo $sql;

Posté : 17 oct. 2008, 21:46
par coucou
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);

Posté : 17 oct. 2008, 23:15
par albat
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";

Posté : 17 oct. 2008, 23:24
par coucou
C'est vrai que c'est plus clair d'un coup
Je vais en prendre bonne note professeur :lol: :wink: