Problème d'affichage avec date

Eléphant du PHP | 254 Messages

16 mars 2007, 17:52

Hello à tous
Ca fait bien longtemps que je n'étais pas venue ici.
J'ai un petit souci avec une erreur de syntaxe apparement, en local ça marche bien et en distant patatras !
Voici le bout de code en cause :
Je veux afficher des événements s'ils sont ultérieurs à la date courante. Donc on n'affiche pas les événements passés.
J'avais eu ce souci auparavent, mais avec uniquement le mois...là le pb me semblait moins complexe et pourtant...
<?php
mysql_select_db($database, $connexion);
$query_ListeArticle = "SELECT * FROM agenda, rubrique WHERE DATE(date_debut) >= DATE(NOW()) AND agenda.rubrique_ID=rubrique.ID ORDER BY `date_debut` ASC";
$ListeArticle = mysql_query($query_ListeArticle, $connexion) or die(mysql_error());
$row_ListeArticle = mysql_fetch_assoc($ListeArticle);
$totalRows_ListeArticle = mysql_num_rows($ListeArticle);
?>
Et j'ai cette erreur :
Erreur de syntaxe près de '(date_debut) >= DATE(NOW()) AND agenda.rubrique_ID=rubrique.ID' à la ligne 1
Quelqu'un a une idée ?
Merci beaucoup ! :D

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 mars 2007, 22:04

Hello ! Ca fait effectivement un moment qu'on ne t'avait vue par ici :)

Pour ton problème, la fonction DATE() est disponible depuis MySQL 4.1.1, as-tu bien la bonne version en ligne ?

Tu peux essayer de simplement jouer la requête "SELECT DATE(NOW()) FROM DUAL" sur ton serveur pour voir si c'est bien de là que vient le problème :)

Sinon peut être une table qui ne serait pas à jour ? (mais ca ne serait pas une erreur de syntaxe, donc je doute)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 254 Messages

17 mars 2007, 11:57

Bonjour et merci de ta réponse !!
:D
Alors j'ai vérifié la version PHP sur ce serveur est Php version: 4.4.X & 5.1
Donc ça devrait être bon non ?
Et la structure de la table en question :
Champ : date_debut
Type : date
Attributs :
Null : Non
Défaut : 0000-00-00
Idem pour 'date_fin'

J'ai fait le test et j'ai toujours la meme erreur :cry:

Eléphant du PHP | 254 Messages

17 mars 2007, 12:06

oh non....
Le serveur mysql sur ce site sur lequel je donne un coup de main est
Mysql version: 4.0.15
Pfff c'est pourri !
Je peux faire quoi ?

Eléphant du PHP | 254 Messages

17 mars 2007, 12:27

J'essaye de contourner le pb en faisant ça :
Je pose la variable $date_jour = date('Y-m-d')
Ensuite ma requete :
mysql_select_db($database, $connexion);
$query_ListeArticles = "SELECT * FROM agenda, rubrique WHERE agenda.date_debut >= $date_jour AND agenda.rubrique_ID=rubrique.ID  ORDER BY agenda.date_debut ASC";
$ListeArticles = mysql_query($query_ListeArticles, $connexion) or die(mysql_error());
$row_ListeArticles = mysql_fetch_assoc($ListeArticles);
$totalRows_ListeArticles = mysql_num_rows($ListeArticles);
J'ai rentré dans la base un rendez-vous avec la date_debut : 2006-01-01, et date_fin 2006-01-01
Malheureusement ce rendez-vous s'affiche :(
:roll:
Est-ce que je dois faire différement ma requete avec un BETWEEN ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

17 mars 2007, 15:10

C'est tout bon, mais tu as juste oublié les apostrophes autour de ta chaine date, du coup il doit faire le calcul 2007-01-01 = 2005 et donc ta date est bien supérieure ;)
"SELECT * 
  FROM agenda, rubrique 
  WHERE agenda.rubrique_ID=rubrique.ID 
  AND agenda.date_debut >= '".$date_jour."'
  ORDER BY agenda.date_debut ASC";
J'en ai profité pour sortir ta variable :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 254 Messages

17 mars 2007, 16:36

yes merveilleux mais bien sur !!!
Thank's Ryle !!!
:oops: :D
Bon je vais venir vous embeter je crois pour un souci de fichier
J'arrive à mettre à jour mais pas uploader.