IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

select week where date


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 55
    Points : 67
    Points
    67
    Par défaut select week where date
    Bonjour,

    Je voudrais selectionner plusieurs dates de la semaine de ma bdd à partir d'une seule date. Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM depenses WHERE WEEK(coldate) = '2012-03-17'
    Comme sur cette exemple je veux tout selectionner de la semaine du 17 mars uniquement.

    Enfait dans mon code j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM depenses WHERE WEEK(coldate) = $getdate ORDER BY coldate DESC
    $getdate = $_GET['coldate']; <-- je cherche la semaine de cette date

    Merci pour votre aide

  2. #2
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut
    Tu peux aussi utiliser la fonction WEEK sur $getdate :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM MaTable
    WHERE WEEK(coldate) = WEEK($getdate)
    Préciser le SGBD car certaines fonctions ne marchent pas sur tous.

  3. #3
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 158
    Points : 64
    Points
    64
    Par défaut
    Bonjour,

    Si vous êtes sur Oracle, vous pouvez utiliser la fonction extract(month from date)

  4. #4
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut
    Citation Envoyé par mar1985 Voir le message
    Bonjour,

    Si vous êtes sur Oracle, vous pouvez utiliser la fonction extract(month from date)
    Il ne cherche pas le mois mais la semaine.

    Il est possible de faire aussi : TO_CHAR(MaDate,'IW')

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 55
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par lola06 Voir le message
    Tu peux aussi utiliser la fonction WEEK sur $getdate :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM MaTable
    WHERE WEEK(coldate) = WEEK($getdate)
    Préciser le SGBD car certaines fonctions ne marchent pas sur tous.
    Merci pour votre réponse.
    Enfait je fais ca en PHP.
    Quand je test:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = $bdd->prepare('SELECT * FROM depenses WHERE id_users=:id_users AND WEEK(coldate) = WEEK(\'2012-04-17\') ORDER BY coldate DESC');
    Ca marche bien,

    mais quand je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = $bdd->prepare('SELECT * FROM depenses WHERE id_users=:id_users AND WEEK(coldate) = WEEK($getdate) ORDER BY coldate DESC');
    ca ne marche pas. J'ai essayé avec WEEK(\'$getdate\') et WEEK("$getdate") et WEEK(´$getdate´), mais ca ne marche toujours pas...

    EDIT: J'ai trouvé!! WEEK(\''.$getdate.'\') hehe!!

  6. #6
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut
    Je pense qu'il ne doit pas tenir compte de $getdate en temps que paramètre :

    D'après ce que j'ai vu (cad pas grand chose) tu devrais faire plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = $bdd->prepare("SELECT ... = WEEK("+$getdate+") ORDER BY coldate DESC");

  7. #7
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 110
    Points : 28 447
    Points
    28 447
    Par défaut
    Face à ce type de problème, le moyen le plus efficace pour comprendre l'origine de l'erreur est d'afficher le code de la requête avant de l'exécuter.
    On voit alors ce qui est réellement envoyé au SGBD

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 55
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par lola06 Voir le message
    Je pense qu'il ne doit pas tenir compte de $getdate en temps que paramètre :

    D'après ce que j'ai vu (cad pas grand chose) tu devrais faire plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = $bdd->prepare("SELECT ... = WEEK("+$getdate+") ORDER BY coldate DESC");
    Non plus, car avec les chiffres ca donne: WEEK(coldate) = WEEK('2012-04-03'), donc avec la variable il faut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = $bdd->prepare('SELECT * FROM depenses WHERE id_users=:id_users AND WEEK(coldate) = WEEK(\''.$getdate.'\') ORDER BY coldate DESC');

  9. #9
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut
    C'est un problème plutôt PHP que SQL là...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/08/2012, 11h54
  2. Select where date semaine précédente
    Par olibara dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 03/11/2010, 17h57
  3. Clause WHERE pour SELECT entre deux dates
    Par arogues dans le forum Langage SQL
    Réponses: 8
    Dernier message: 17/04/2008, 17h42
  4. [COUNT] select ... from ... where count !
    Par tmcgrady dans le forum Langage SQL
    Réponses: 5
    Dernier message: 30/11/2007, 17h29
  5. requette where date="moins de 2 jours"
    Par nmerydem dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/05/2004, 16h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo