Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/05/2007, 14h35   #1
Nouveau Membre du Club
 
Avatar de urbalk
 
Inscription : novembre 2005
Messages : 135
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : novembre 2005
Messages : 135
Points : 38
Points : 38
Par défaut [SQL] calcul date future

Bonjour,

Dans une requete sql, je cherche a afficher les posts J+30. dans ma base j'ai un champs "timestamp".

la requete sql est elle la meilleur solution ?

Comment calculer cette date ?

je me suis pencher sur DATEDIFF mais bon résultat.

merci.
urbalk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 14h55   #2
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Citation:
Envoyé par urbalk
je me suis pencher sur DATEDIFF mais bon résultat.


On peut la voir la requête ?
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 15h05   #3
Nouveau Membre du Club
 
Avatar de urbalk
 
Inscription : novembre 2005
Messages : 135
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : novembre 2005
Messages : 135
Points : 38
Points : 38
la voila

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
echo 'calcul d une date de plus de 90 jrs';
echo '<br>';
$today = date('Y-m-d');
echo $today;
echo '<br>';echo '<br>';echo '<br>';
 
$sql = "SELECT * FROM messages 
		WHERE datevent >= CURRENT_DATE()
		AND DATEDIFF($today, !!!!!)
		ORDER BY ASC";
 
// j'envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
 
//boucle dans la table
 
// affichage des resultats
?>
mon pb est au niveau des !!! je ne sais pas comment calculer l'expression 2

a+
urbalk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 15h43   #4
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
C'est ton champ qu'il faut mettre nan

Code :
1
2
3
4
sql = "SELECT * FROM messages 
		WHERE datevent >= CURRENT_DATE()
		AND DATEDIFF(dateevent, CURRENT_DATE()) < 30
		ORDER BY ASC";
Et au passage ça sert à rien d'utiliser $today, tu mets CURRENT_DATE() dans ta requête directement ça sera mieux

(pas testé la requête)
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 16h02   #5
Nouveau Membre du Club
 
Avatar de urbalk
 
Inscription : novembre 2005
Messages : 135
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : novembre 2005
Messages : 135
Points : 38
Points : 38
Citation:
C'est ton champ qu'il faut mettre nan
je ne pense pas car mon champs datevent correspond a un evenement qui peu avoir lieu dans 6 mois or le but de cette requete est de faire afficher tous les enregistrements qui vont avoir lieu avant 90 jours...
Citation:
Et au passage ça sert à rien d'utiliser $today, tu mets CURRENT_DATE() dans ta requête directement ça sera mieux
en effet en fait je tatonne et essaies un peu tout

Citation:
(pas testé la requête)
si si, d'ailleurs il y a une parse error on line 3 ;o)

a+
urbalk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 16h24   #6
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Citation:
Envoyé par urbalk
je ne pense pas car mon champs datevent correspond a un evenement qui peu avoir lieu dans 6 mois or le but de cette requete est de faire afficher tous les enregistrements qui vont avoir lieu avant 90 jours...
Bah justement DATEDIFF(dateevent, CURRENT_DATE()) < 30 va te filtrer tous les enregistrements qui ont un dateevent antérieur à la date du jour + 30 jours c'est pas ça que tu voulais (et avec le dateevent >= CURRENT_DATE() en plus tu va te retrouver avec tous les enregistrements ayant un dateevent compris entre J et J+30)...

Pour le test je voulais dire que la requête que j'ai balancé je l'ai pas testée
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 17h16   #7
Nouveau Membre du Club
 
Avatar de urbalk
 
Inscription : novembre 2005
Messages : 135
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : novembre 2005
Messages : 135
Points : 38
Points : 38
Citation:
Bah justement DATEDIFF(dateevent, CURRENT_DATE()) < 30 va te filtrer tous les enregistrements qui ont un dateevent antérieur à la date du jour + 30 jours c'est pas ça que tu voulais
Oups, ta requete ressemblais fort a la mienne, je n'ai pas pris le temps de la lire correctement et donc je suis passé à cote. Toutes mes escuses.

Citation:
Pour le test je voulais dire que la requête que j'ai balancé je l'ai pas testée
Re-oups ! j'ai cru que tu parlai de ma requete !!! re-scuse.

Ta requète fonctionne parfaitement et correspond exactement à ce que je souhaitais faire.(il manque juste le '$').

merci et désolé
urbalk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 17h21   #8
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
je sais pas de quel $ tu parles mais bon si ça fait ton bonheur tant mieux

N'oublie pas de cocher le tag merki
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 17h24   #9
Nouveau Membre du Club
 
Avatar de urbalk
 
Inscription : novembre 2005
Messages : 135
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : novembre 2005
Messages : 135
Points : 38
Points : 38
le '$' devant
$sql = "requete";
j'attendais ta réponse pour taggé.
merci
a+
urbalk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 18h03   #10
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Citation:
Envoyé par urbalk
le '$' devant
$sql = "requete";
Ah mokay
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h00.


 
 
 
 
Partenaires

Hébergement Web