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 18/07/2007, 14h13   #1
Invité régulier
 
Inscription : mai 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 33
Points : 6
Points : 6
Par défaut [SQL] Fonction de date et heure

Bonjour , j'ai actuelement une base de données dans laquelle est definit la date de fin de contrat d'un client.
J'aimerai faire une requete permetant de selectionner les clients ayant leur contrat se terminant sous les 30 jours.

Par exemple :
- Martin Albert => fin de contrat le 29/12/09 : ok
- Martin Benoit => fin de contrat le 12/08/07 : expiration dans moins d'un moi !

Alors la requete nous permetrai pour dans ce cas , d'afficher tout les client en fin de contrat..
Je suis aller voir la documentation des fonction de date et heure mais je suis perdu
Une ame charitable pour me mettre sur la voie ?

Merci d'avance
dudezerff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 14h16   #2
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 451
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 451
Points : 7 564
Points : 7 564
Tout simplement :
Code :
1
2
SELECT ...
WHERE fin_contrat < CURRENT_DATE + 30
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 14h25   #3
Membre Expert
 
Inscription : avril 2005
Messages : 1 672
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 672
Points : 1 337
Points : 1 337
Cf. les règles du forum : SGBD et version ?
__________________
Modérateur des forums Oracle et Langage SQL
Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum
Magnus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 14h27   #4
Invité régulier
 
Inscription : mai 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 33
Points : 6
Points : 6
Pourquoi faire compliquer quand on peut faire simple ^^.
Une autre petite question , faut-il plustot utiliser un while ou un for apres ma requete pour parcourir toute la table ?

La requete serait de ce type la :

Code :
1
2
3
4
5
$requete = mysql_query("SELECT societe FROM fr_contrat WHERE finContrat > CURRENT_DATE + 30");
 
while($row = mysql_fetch_array($requete)){
$date=$row['finContrat'];
}
J'obtiens bien les clients dont le contrat est bientot expiré ?
Je suis désolé d'etre nul , j'apprends tt seul et c pas facil desfois meme si pour vous cela doit etre evident ^^

Ps: a mon avis i lfaudrait plustot un for ici , ce qui nous permetrait de parcourir tout les clients enregistrés dans la base de données et ainsi voir ceux en fin de contrat , non ?

Je travail avec easyPhp 1.8.0.1
dudezerff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 14h55   #5
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 451
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 451
Points : 7 564
Points : 7 564
Citation:
Envoyé par dudezerff
Une autre petite question , faut-il plustot utiliser un while ou un for apres ma requete pour parcourir toute la table ?
Cela n'est plus du ressort du langage SQL mais de ton langage applicatif.
La question est à poser sur le forum correspondant.

... et je n'ai aucune idée sur la question.
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 10h43   #6
Invité régulier
 
Inscription : mai 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 33
Points : 6
Points : 6
Bonjour , je me suis remis au travail ce matin :

Code :
1
2
3
4
5
6
7
8
9
$sql2='SELECT societe FROM fr_contrat WHERE finContrat > CURRENT_DATE + 30';
 
$requete3=mysql_query($sql2) or die(mysql_error());
 
 
while($data = mysql_fetch_array($requete3))
{
    echo ' <i>Societe : '.$data['societe'].'</i><br>'; 
}
Donc apparement je n'arrive pas a rentrer dans le while .En notifiant une autre requete qui marche , je rentre dedans .
Je ne vois pas l'erreur dans la requete, j'ai essayer d'executer la requete sous phpMyAdmin et je n'ai pas d'erreur ...
Merci d'avance pour un coup de pouce
dudezerff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 17h37   #7
Membre confirmé
 
Avatar de cyreel
 
Jacques KONAN
Développeur Web
Inscription : juin 2004
Messages : 342
Détails du profil
Informations personnelles :
Nom : Jacques KONAN

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2004
Messages : 342
Points : 216
Points : 216
Envoyer un message via MSN à cyreel Envoyer un message via Yahoo à cyreel
essai avec ceci:

Code :
1
2
3
4
5
6
7
8
9
10
 
$sql2='SELECT societe FROM fr_contrat WHERE finContrat > CURRENT_DATE + 30';
 
$requete3=mysql_query($sql2) or die(mysql_error());
 
 
while($data = mysql_fetch_array($requete3))
{
    echo ' <i>Societe : '.$data[societe].'</i><br>'; 
}
cyreel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 18h11   #8
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Code SQL :
SELECT societe FROM fr_contrat WHERE `finContrat` BETWEEN NOW() AND NOW() + INTERVAL 1 MONTH;


Parce qu'ajouter un nombre à une date c'est comme ajouter des brouettes et des cacahouètes
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 09h47   #9
Invité régulier
 
Inscription : mai 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 33
Points : 6
Points : 6
Bonjour , j'ai fais comme ca et cela marche :

Code :
$sql3="SELECT societe, finContrat FROM fr_contrat WHERE finContrat < DATE_ADD(CURRENT_DATE, INTERVAL 31 DAY)";
dudezerff 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 03h40.


 
 
 
 
Partenaires

Hébergement Web