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

Développement SQL Server Discussion :

Problème requête SQL (simple) avec php


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2019
    Messages : 8
    Par défaut Problème requête SQL (simple) avec php
    PHP : 5.5.9
    SQL-Server 12.0.4100

    Bonjour, j'ai un soucis étrange que je ne comprend pas.

    J'ai fait un requête SQL qui consiste à récupérer des temps en dessous de 7.5h de associés à des ID (Matricules), donc la requête est toute simple :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Matricule, Date, HT, PRENOM, NOM
    FROM TpsPointéParJour
    WHERE HT > 7.5

    Et en effet elle me retourne bien les lignes que je veux. Donc satisfait j'écris cette requête dans mon script PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $rep = $bdd->query("
    SELECT Matricule, Date, HT, PRENOM, NOM
    FROM TpsPointéParJour
    WHERE HT > 7.5
    ");
     
    $data = $rep->fetchAll(PDO::FETCH_ASSOC);
     
    var_dump($data);
    (Je précise : Ma connexion PDO PHP -> SQL est bonne, je travaille avec depuis quelques mois et jamais eu de soucis là dessus)
    Et la le drame : Erreur SQL Server [102]. La requête ne fonctionne pas. Je me suis renseigné sur le message d'erreur mais rien ne correspond à mon problème...

    Une idée ? Comment c'est possible qu'une requête aussi simple ne fonctionne pas avec PHP ? Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    Date est un mot réservé SQL
    Évite absolument de nommer tes colonnes avec des mots réservés.
    Essaie avec : `Date`

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    L'accent dans le nom de ta table est également une source de problème.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2019
    Messages : 8
    Par défaut
    Merci pour vos réponses,
    Oui en effet pour date et l'accent, j'ai renommé ma colonne, le nom de la table et je n'ai plus d'erreurs. Maintenant deuxième problème : La requête ne me retourne rien (Enfin sous SQL j'ai bien un retour de 17 lignes mais avec php rien).
    Donc j'ai testé un peu, ça vient d'une condition que j'ai ajouté pour filtrer les dates.

    Voici ma nouvelle requête :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Matricule,HT,PRENOM, NOM,date_day
    FROM TpsPointeParJour
    WHERE HT > 7.5 AND date_day = CONVERT(DATE, DATEADD(day, - 1, GETDATE()))
    Et je pense que le problème viens de ma condition qui sert à récupérer la date [jour actuel-1]. Par exemple pour aujourd'hui je veut récupérer la date d'hier donc je veux : 2019-03-05. Et sous SQL je récupère bien ca donc la condition fonctionne, mais visible pas sous PHP car si j'enlève la condition je récupère bien des lignes sous PHP.

    Vous avez une idée de ce qui pose problème dans la condition, ou si il y a une autre manière de récupérer la date d'hier dans la forme que je veut ?

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Quel est le type de données de la colonne date_day ? Si c'est du DATETIME ou DATETIME2 elle contient les heures, minutes, seconde, centième de seconde... donc il faudrait un miracle pour tomber pile poil sur le même datetime avec 24h de moins.

    Soit vous rectifiez le type de votre colonne en DATE soit vous rectifiez votre filtrage pour prendre en compte du début à la fin de la journée soit,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    pour un DATETIME (fortement déconseillé depuis la version 2008) du AAAAMMJJ 00:00:00 au AAAAMMJJ 23:59:59.997
    pour un DTATIME2(n) du AAAAMMJJ 00:00:00 au AAAAMMJJ 23:59:59.999[.9[9[9[9[9[9[9]]]]]]]
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2019
    Messages : 8
    Par défaut
    Rah oui en effet ça venait du type de ma date ...
    C'était pas facile à voir vu que c'est des vues, de vues de vues ... (Je tiens à préciser que je ne suis pas l'auteur de ces vues ! ^^ )

    Donc le problème était : Ma date était un string écrit sous la forme "06/03/2019", je ne sait pas sous quel miracle j'arrivait a avoir des résultat sachant que je faisait un WHERE avec une date type : "2019-06-03", mais cela ne fonctionnait que sous SQL.
    Donc pour avoir des résultats sous PHP j'ai modifié le type de la date dans la vue et j'ai fait un CONVERT(DATETIME,ma_date) et ça fonctionne bien .

    Merci pour votre aide j'y voit plus clair dans cette sorcellerie !

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

Discussions similaires

  1. [AC-2016] Problême requête SQL simple
    Par Valionne dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 10/11/2017, 14h57
  2. problèmes requête sql, dont lien avec la valeur d'un textbox
    Par Drone dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 12/02/2009, 17h28
  3. Problème pour requête SQL LIKE avec ACCESS
    Par ar.aziz dans le forum VB.NET
    Réponses: 2
    Dernier message: 02/07/2008, 10h53
  4. Problème Syntaxe requête SQL LIKE avec ACCESS
    Par Arnofish dans le forum Accès aux données
    Réponses: 3
    Dernier message: 22/12/2007, 11h57
  5. [SQL] Problème requêtes SQL / php
    Par laulau37 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 02/07/2007, 15h48

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