Compparer une date dans une requete MySQL
SuD_976
-
Thamior Messages postés 267 Statut Membre -
Thamior Messages postés 267 Statut Membre -
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) ;
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) ;
A voir également:
- Compparer une date dans une requete MySQL
- Mysql community download - Télécharger - Bases de données
- Comment prolonger la date de validité d'une smartbox ✓ - Forum Consommation & Internet
- Modifier une date sur un document - Forum PDF
- Jm date désabonnement ✓ - Forum Consommation & Internet
- Jm date avis - Forum Consommation & Internet
9 réponses
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.
$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.
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.
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.
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
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
j'ai expose ma techenique de date dans ce thread:
http://www.commentcamarche.com/forum/affich.php3?cat=3&ID=222099&page=1
http://www.commentcamarche.com/forum/affich.php3?cat=3&ID=222099&page=1
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
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
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);
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);