Précédent   Forum du club des développeurs et IT Pro > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 11/12/2012, 19h36   #1
maxdata
Invité de passage
 
Homme Akim AMx
Inscription : janvier 2010
Messages : 22
Détails du profil
Informations personnelles :
Nom : Homme Akim AMx

Informations forums :
Inscription : janvier 2010
Messages : 22
Points : 3
Points : 3
Par défaut Afficher des dates comprises dans la semaine courante

Bonjour,

Je viens pour avoir un peut d'aide pour récupérer des champs dans ma base SQL, comprise dans la semaine en cour du lundi au dimanche.

En faite j'aimerai récupérer toute les entrées PHP comprise dans la semaine courante ?

mon soucis c'est que les date sont dans le format : d/m/y H:i

je souhaite récupérer les événement dans la semaine en cours mais sur 2 champs sql = toute les événements dans le champ "start", et tout les événement dans le champs "stop" et les séparer dans un tableau

pouvez vous m'aider a réaliser le code, car moi je cale

Merci pour vos lumières

Cdt,

Max
maxdata est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2012, 19h52   #2
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 861
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 861
Points : 21 924
Points : 21 924
Quelle est le système de base de donnée que tu utilises ? SQL Server ?
Quelque soit la réponse, il a surement des fonctions de dates pour sortir la position du jour actuel dans la semaine et ajouter/soustraire des nombres de jour à la date actuelle ; pour ainsi faire ta condition BETWEEN date_du_lundi AND date_du_dimanche
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2012, 20h01   #3
maxdata
Invité de passage
 
Homme Akim AMx
Inscription : janvier 2010
Messages : 22
Détails du profil
Informations personnelles :
Nom : Homme Akim AMx

Informations forums :
Inscription : janvier 2010
Messages : 22
Points : 3
Points : 3
Merci pour ta réponse, la base SQL server oui

Comment dire que date_du_lundi AND date_du_dimanche sont bien un lundi ou dimanche ?

cdt,
maxdata est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2012, 20h41   #4
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 861
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 861
Points : 21 924
Points : 21 924
Code :
SELECT DATEADD(day, - DATEPART(weekday, GETDATE()), GETDATE())
Ca devrait te retourner le 10/12/2012 (lundi) ; sauf si ton serveur a comme premier jour le dimanche ...
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2012, 21h23   #5
maxdata
Invité de passage
 
Homme Akim AMx
Inscription : janvier 2010
Messages : 22
Détails du profil
Informations personnelles :
Nom : Homme Akim AMx

Informations forums :
Inscription : janvier 2010
Messages : 22
Points : 3
Points : 3
je n'arrive pas a faire marcher cette requette

Cdt
maxdata est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2012, 21h33   #6
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 861
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 861
Points : 21 924
Points : 21 924
Qu'est ce que tu obtiens ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 15h01   #7
maxdata
Invité de passage
 
Homme Akim AMx
Inscription : janvier 2010
Messages : 22
Détails du profil
Informations personnelles :
Nom : Homme Akim AMx

Informations forums :
Inscription : janvier 2010
Messages : 22
Points : 3
Points : 3
disons que je ne comprend pas trop la syntaxe a appliquer :

Code sql :
SELECT DATEADD(day, - DATEPART(weekday, GETDATE()), GETDATE())


DATEADD = nom de ma table ?
DATEPART = champs date de ma base ?
GETDATE = ?
GETDATE = ?

cdt,
maxdata est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 15h02   #8
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 861
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 861
Points : 21 924
Points : 21 924
Heu non je t'ai donné une requête toute prête qui donne la date du lundi.
Si ça fonctionne on pourra faire "tadate" entre "lundi" et "dimanche"
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 16h27   #9
maxdata
Invité de passage
 
Homme Akim AMx
Inscription : janvier 2010
Messages : 22
Détails du profil
Informations personnelles :
Nom : Homme Akim AMx

Informations forums :
Inscription : janvier 2010
Messages : 22
Points : 3
Points : 3
Code :
$query = "SELECT DATEADD(day, - DATEPART(weekday, GETDATE()), GETDATE())";
me retourne

FUNCTION ibm.DATEADD does not exist
maxdata est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 16h37   #10
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 861
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 861
Points : 21 924
Points : 21 924
Tu es sûr que tu es sur un SQL Server ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 17h57   #11
maxdata
Invité de passage
 
Homme Akim AMx
Inscription : janvier 2010
Messages : 22
Détails du profil
Informations personnelles :
Nom : Homme Akim AMx

Informations forums :
Inscription : janvier 2010
Messages : 22
Points : 3
Points : 3
C'est une base MySql, mais on est bien en language PHP non ? c'est dans un fichier PHP que je veux faire la requete ...
maxdata est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2012, 16h15   #12
Celira
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 4 335
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java
Secteur : Industrie

Informations forums :
Inscription : avril 2007
Messages : 4 335
Points : 8 500
Points : 8 500
La requête est appelée par un script PHP, mais la requête proprement dite dépend du SGDB.
Et si la requête peut faire le boulot, autant éviter de le faire en PHP.
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [CODEINLINE=php][/CODEINLINE]
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2012, 19h53   #13
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 861
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 861
Points : 21 924
Points : 21 924
en mysql :
Code sql :
1
2
3
4
5
6
SELECT tes_champs FROM ta_table 
WHERE ta_colonne 
BETWEEN 
       DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) day) 
AND 
       DATE_ADD(CURDATE(), INTERVAL 6 - WEEKDAY(CURDATE()) day)
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2012, 00h13   #14
maxdata
Invité de passage
 
Homme Akim AMx
Inscription : janvier 2010
Messages : 22
Détails du profil
Informations personnelles :
Nom : Homme Akim AMx

Informations forums :
Inscription : janvier 2010
Messages : 22
Points : 3
Points : 3
merci pour vos aides c'est sympas

mais ca marche pour des dates au format d/m/y H:i ?

car la requête ne me retourne rien
maxdata est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2012, 00h51   #15
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 861
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 861
Points : 21 924
Points : 21 924
tes dates doivent etre dans une colonne date ou datetime sinon tu fais fausse route.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2012, 01h54   #16
maxdata
Invité de passage
 
Homme Akim AMx
Inscription : janvier 2010
Messages : 22
Détails du profil
Informations personnelles :
Nom : Homme Akim AMx

Informations forums :
Inscription : janvier 2010
Messages : 22
Points : 3
Points : 3
j'ai testé en modifiant les dates en datetime et ca fonctionne cela veut dire que il faut que je change toute mes dates ... grrr bon je vais réfléchir pour convertir les dates

merci encore
maxdata est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2012, 09h13   #17
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 861
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 861
Points : 21 924
Points : 21 924
Code sql :
UPDATE ta_table SET nouvelle_colonne = STR_TO_DATE(ancienne_colonne, '%d/%m/%Y %H:%i')
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2012, 22h29   #18
maxdata
Invité de passage
 
Homme Akim AMx
Inscription : janvier 2010
Messages : 22
Détails du profil
Informations personnelles :
Nom : Homme Akim AMx

Informations forums :
Inscription : janvier 2010
Messages : 22
Points : 3
Points : 3
Impeccable merci encore, toute mes dates sont maintenant en datetime, tout fonctionne


et ya t'il un moyen d'afficher toute les datetime du mois en cours ?
maxdata est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2012, 23h19   #19
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 861
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 861
Points : 21 924
Points : 21 924
Code sql :
1
2
3
SELECT tes_champs FROM ta_table 
WHERE MONTH(ta_colonne) = MONTH(CURDATE())
AND YEAR(ta_colonne) = YEAR(CURDATE())
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/02/2013, 16h16   #20
maxdata
Invité de passage
 
Homme Akim AMx
Inscription : janvier 2010
Messages : 22
Détails du profil
Informations personnelles :
Nom : Homme Akim AMx

Informations forums :
Inscription : janvier 2010
Messages : 22
Points : 3
Points : 3
Merci tout fonctionne, il me reste une dernière chose a vous demander ...

est'il possible d'avoir la moyenne des temps écoulé entre les 2 dates ?

les champs sont donc au format datetime, et j'aimerai les récupérer en
jour - Heures, minutes

j'ai trouvé cette requête mais j'ai l’impression qu'elle ne fonctionne pas correctement :

Code :
1
2
3
4
5
6
7
8
9
10
$sql = "SELECT SEC_TO_TIME(AVG(UNIX_TIMESTAMP(start) - UNIX_TIMESTAMP(stop))) as avTime FROM $tbl_call ";
$res = mysql_query($sql);
 
 
$average2 = mysql_result($res, 0, 'avTime');
	$average = explode(":",$average2);
	$h = $average2[0];
	$m = $average2[1];
	$s = $average2[2]; 
$average2 = "$h H $m Min";
Merci, si vous avez un avis ?
maxdata est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


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


 
 
 
 
Partenaires

Hébergement Web