Compparer une date dans une requete MySQL

Fermé
SuD_976 - 25 févr. 2003 à 16:14
Thamior Messages postés 264 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 18 mars 2014 - 5 mars 2008 à 12:58
Bonjour tout le monde,

j'ai un problème avec mes dates que je n'arrive pas à résoudre seul... en fait je n'arrive pas à faire une requete sur ma base où je compare une date de mon sript php avec le champ date de ma base.
Dans mon script ci-dessous je récupère dans la variable $lien la date au format %Y-%m-%d ... je souhaite ensuite rechercher dans ma base la présence de cette date. Sauf que quand la requete s'exécute, MySQL me retourne l'erreur Supplied argument is not a valid MySQL result resource

J'ai essayé plein de trucs, je commence à désespérer... aidez moi s'il vous plait.

Merci d'avance

SuD

$jjdate=@mktime(10,0,0,$date["mon"],1-$nj+$sem*7+$j,$date["year"]);
$jj=@getdate($jjdate);

$lien=strftime("%Y-%m-%d", $jjdate);

$db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd);

$Res_Valid=mysql_db_query($sql_bdd,"select Num_Date, Date, Valeur from testdates where Date=$lien",$db_link);

$total_row = mysql_num_rows($Res_Valid);

if($total_row!=0){
$Row_Select = mysql_fetch_array($Res_Valid);
$num = $Row_Select[0];
$date = $Row_Select[1];
$valeur = $Row_Select[2];

if($valeur==1){$sortie.="<td align=center bgcolor=#EEEEEE>";}
else {$sortie.="<td align=center>";}
}

else {$sortie.="<td align=center>";}

mysql_close($db_link) ;

9 réponses

jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
25 févr. 2003 à 17:16
Essaye peut-être
$Res_Valid=mysql_db_query($sql_bdd,"select Num_Date, Date, Valeur from testdates where Date='$lien' ",$db_link);

Johan Daine
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
25 févr. 2003 à 17:28
Bonjour,
Quel est le type du champ Date dans ta table testdates.
Essaye de ramener son conte nu à un timestamp unix,
afin de comparer ce qui est comparable...
Johan


The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
0
Tout d'abbord merci pour les réponses jisisv...
en ce qui concerne les cotes à rajouter dans la requete, ça change rien.
Le type du champ date c'est date tout simplement.
sinon j'ai essayé de ramener le contenu de la variable à un timestamp unix mais le problème c'est que je ne sais pas trop comment faire... j'ai fait des tests plus qu'hésitants mais rien de concluant. Peut etre que tu peux m'aider de ce coté là...

Merci

SuD
0
Bonjour,

je n'ai toujours pas réussi à résoudre mon problème même en changeant completement de technique.
J'ai décidé de travailler avec mes dates comme avec des entiers. C'est à dire que j'ai converti mon champ Date de ma base en un int(8) qui contient par exemple pour la date aujourd'hui la valeur : 20030226

Voici donc ce que donne mon script : (toujours le meme problème lors de la requete :-((((


$jjdate=@mktime(10,0,0,$date["mon"],1-$nj+$sem*7+$j,$date["year"]);

// je récupère la date au format : 20030226 (ça marche bien)
$tmp=strftime("%Y%m%d", $jjdate);

$d = substr($tmp,6,2); // jour
$m = substr($tmp,4,2); // mois
$y = substr($tmp,0,4); // année

// la meme date mais en temps qu'entier
$lien =$y.$m.$d;

$db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd);

$Res_Valid=mysql_db_query($sql_bdd,"select Num_Date, Date, Valeur from testdates where Date=$lien",$db_link);

// et pi là ça plante
$total_row = mysql_num_rows($Res_Valid);

voilà donc j'ai essayé plein de trucs et rien ne résoud le problème, je commence sérieusement à désespérer....

Aidez-moi s'il vous plait

SuD
0

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

Posez votre question
wiwimagique Messages postés 481 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 20 avril 2006 108
26 févr. 2003 à 10:07
j'ai expose ma techenique de date dans ce thread:
http://www.commentcamarche.com/forum/affich.php3?cat=3&ID=222099&page=1
0
Merci pour les infos wiwimagique... j'ai testé ça mais j'y arrive pas...
J'ai bien déclaré mon champ date de ma base en tant qu'entier...
Je fais une recherche dans ma base en passant comme paramètre un entier que j'ai calculé grace à mktime()... et pi toujours la meme erreur lors de la requete... :-((((

au niveau du code ça donne ça :

$jjdate=@mktime(10,0,0,$date["mon"],1-$nj+$sem*7+$j,$date["year"]);

// j'affiche la variable pour tester si elle est corretce...
echo $jjdate;

$db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd);

$Res_Valid=mysql_db_query($sql_bdd,"select Num_Date, Date, Valeur from testdates where Date=$jjdate",$db_link);

$total_row = mysql_num_rows($Res_Valid);

HELPPPPPPPPPPPPPPPPP

SuD
0
wiwimagique Messages postés 481 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 20 avril 2006 108
26 févr. 2003 à 12:28
J'ai pas bien compris comment tu as enregistrer ta date...
essaie neanmoins comme ceci:

$db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd);
mysql_select_db($sql_bdd);
$Res_Valid=mysql_query("select Num_Date, Date, Valeur from testdates where Date=$jjdate");

$total_row = mysql_num_rows($Res_Valid);
0
je veut compparer une date dans une requete MySQL mais ne ais pas :
je veut afficher des noms where date>=1980-01-01
0
Thamior Messages postés 264 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 18 mars 2014 47
5 mars 2008 à 12:58
Bonjour,

Essaie ça :

WHERE date >= #1980-01-01#
WHERE date >= "#1980-01-01#"

L'une des deux lignes devrait marcher ^^.
0

Discussions similaires