Petit probleme de requete sql php

Résolu/Fermé
mariline285 Messages postés 76 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 19 février 2011 - 11 févr. 2009 à 10:49
mariline285 Messages postés 76 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 19 février 2011 - 11 févr. 2009 à 15:15
Bonjour,
Je voudrais créer une requete qui m affiche les num_p inferieur ou egale à la date DATE_A mais ça ne marche pas: ça m affiche les num_p strictement inferieur! Quelqu un pourrait il m aider SVP ???

Voici ma requete:

$sql_liste=mysql_query('
SELECT num_p
FROM p
where DATE_A<=STR_TO_DATE(\''.$date.'\', \'%d-%m-%Y\')
ORDER BY num_ticket;');

MERCI D AVANCE.
A voir également:

14 réponses

974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
11 févr. 2009 à 10:53
Ben je vois pas trop pourkoi ca marche pas, ya surment un truc ki méchape là, ben essaye ca

$sql_liste=mysql_query('
SELECT num_p
FROM p
where STR_TO_DATE(\''.$date.'\', \'%d-%m-%Y\') >DATE_A
ORDER BY num_ticket;');


loool

Chui pas sur de moi sur ce cou là, mé si ca marche pas toutes mes exkuze ;)

^^ ..
0
mariline285 Messages postés 76 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 19 février 2011
11 févr. 2009 à 11:02
Avec ta requete ça me donne pareil.
J'ai remarqué que si je met < OU <= : ça me donne la même chose. C'est comme si il prend $date -1.

On peut incrementer la date de 1 jour avec STR_TO_DATE?
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
11 févr. 2009 à 11:03
Justement STR_TO_DATE représente koi ???

0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
11 févr. 2009 à 11:07
Tout d'abord quel est le format de ta date dans ta base MYSQL....

Par défaut c'est : 0000-00-00
alors que toi j'ai l'impression que tu veux insérer une date au format : 00-00-0000 (...%d-%m-%Y\...)

Regarde à ce niveau
0

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

Posez votre question
mariline285 Messages postés 76 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 19 février 2011
11 févr. 2009 à 11:31
Je ne pense pas que c est un prb de format .... Voici ma requete sur mysql:
SELECT num_p
FROM p
where DATE_OUVERTURE<=STR_TO_DATE('11-02-2009','%d-%m-%Y')
AND (DATE_CLOTURE>=STR_TO_DATE('11-02-2009','%d-%m-%Y')
OR DATE_CLOTURE IS NULL)
ORDER BY num_p;

cette requete me renvoie tous les num_p inferieur au 11-02-2009


Pour avoir tous les num_p inferieur ou egale au 11_02-2009, je dois rajouter 1 jour, mais comment faire??? car si je met cette requete d'en dessous ça marche:

SELECT num_p
FROM p
where DATE_OUVERTURE<=STR_TO_DATE('12-02-2009','%d-%m-%Y')
AND (DATE_CLOTURE>=STR_TO_DATE('12-02-2009','%d-%m-%Y')
OR DATE_CLOTURE IS NULL)
ORDER BY num_p;
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
11 févr. 2009 à 11:45
C'est quoi le format de ta date dans ta base de données ??????
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
11 févr. 2009 à 11:52
Tu as essayer de mettre le = avant le < ??

Parce que logiquement ca doit marcher ...
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
11 févr. 2009 à 11:53
Non c'est bien <= et pas =< lol. Par contre si le format date n'est pas bon c'est sur que ça ne marchera jamais
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
11 févr. 2009 à 11:55
Loool oué je sais mais je dis test toujour loool !!!

Rescabe le zafèr lé a lenver lool !!

Ben si elle fait l'inverse c pa bon ???? C a dire strictement supérieur à ...

0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
11 févr. 2009 à 11:56
Non mais tu ne peux pas comparer 2009-02-11 à 11-02-2009...
Normalement comme je dis par defaut dans une base de données le format sera 2009-02-11
0
mariline285 Messages postés 76 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 19 février 2011
11 févr. 2009 à 12:00
En faite, j ai un calendrier au format dd-mm-aaaa.
Je recupere la date saisie et je la met dans ma requete donc dd-mm-yyyy.
Les dates sur mysql sont au format yyyy-mm-dd mais la date que j ai saisie n apparait en aucun cas dans une de mes tables. J'ai changé le format dans ma requete par yyyy-mm-dd mais ça ne me renvoie aucun resultat.

Mais est ce qu on peut rajouter +1 a day????? Si oui comment????
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
11 févr. 2009 à 12:04
Normalement ça devrait fonctionner.

Donne nous deux exemples dans ta table
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
11 févr. 2009 à 12:05
Ben si tu es en PHP fait ca :
<?php
$date = date('Y-m-d');
?>
ensuite dans ta requete remplace : STR_TO_DATE('12-02-2009','%d-%m-%Y') par :'$date'


non ???
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
11 févr. 2009 à 12:06
J'avoue
0
mariline285 Messages postés 76 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 19 février 2011
11 févr. 2009 à 12:17
C'est ce que j ai fait en php (voir le premier message).

J'avais saisie au calendrier 11-02-2009 (car c est la date du jour)
echo $date=11-02-2009


mais avec la fonction STR_TO_DATE quand on fait un <= c est comme si on fait un < (idem pour >= et >)
Donc je voudrais incrementer la date de 1 jour => soit le 12-02-2009

Mais comment incrementer le jour????? est ce possible avec cette fonction... il me semble que oui mais je m souviens plus de la syntaxe.
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
11 févr. 2009 à 12:20
Ben en faite ce que je t'ai dit en haut, oubli le STR_TO_DATE, et dans ta requete tu le remplace par '$date'

Mais a condition de pas oublier de fairejuste avant la requete : $date = date('Y-m-d');

0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
11 févr. 2009 à 13:37
Voici comment incrémenter

SELECT num_p
FROM p
where DATE_OUVERTURE<=STR_TO_DATE('12-02-2009','%d-%m-%Y')
AND (DATE_CLOTURE>=(STR_TO_DATE('12-02-2009','%d-%m-%Y') + 1)
OR DATE_CLOTURE IS NULL)
ORDER BY num_p;


Mais je comprends toujours pas le principe
0
mariline285 Messages postés 76 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 19 février 2011
11 févr. 2009 à 13:48
J ai enlevé le STR_TO_DATE mais j ai encore le prb.
0
mariline285 Messages postés 76 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 19 février 2011
11 févr. 2009 à 15:15
Aprés avoir bien étudiée, je me suis rendu compte que le problème venait de l heure, minute et seconde.
En effet, si la date choisit est 11-02-2009
Ma requete affiche tous les num_p<= 11-02-2009 00:00:00

Solution:
DATE_A<ADDDATE(STR_TO_DATE('".$date."','%d-%m-%Y'), '1')
0