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

PHP & Base de données Discussion :

requête qui marche avec phpmyadmin mais pas en php [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 28
    Points : 20
    Points
    20
    Par défaut requête qui marche avec phpmyadmin mais pas en php
    Bonjour , je cherche à faire une requete qui selectionne dans la bdd les entrées effectuées apres une date donnée.

    J'ai donc d'abord testé ma requete avec phpmyadmin
    SELECT * FROM utilisateur WHERE (date > "2008/02/03")
    Et la ca marche nickel.

    J'ai donc mis ca dans ma page php.
    $sql = "SELECT * FROM utilisateur WHERE (date > \"2008/02/03\")";
    Et la ca marche pas.

    J'ai essayé avec des simple quote et sans quote, mais ca marche toujours pas.

    Je precise juste que le champ date est au format TEXT.

    Merci pour votre aide.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Quand tu dis "ça ne marche pas", que se passe-t-il réellement ? La requête ne renvoie rien ? L'exécution renvoie une erreur ? Ton ordinateur annonce qu'il va s'auto-détruire dans 5 secondes ?

    Un peu plus de précision, le message d'erreur si message il y a et éventuellement le bout de code concerné pourraient être utiles
    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)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Points : 631
    Points
    631
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT * FROM `utilisateur` WHERE `date` > '2008-02-03'";
    Cordialement,
    DaRiaN.

    PS: enfin, je pense que c'est ça.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Au passage : date est un mot réservé du langage sql (mots réservés du sql) ET une fonction php (date())
    Alors, pour bien faire, il vaudrait mieux renommer ton champ
    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)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par Celira Voir le message
    Au passage : date est un mot réservé du langage sql (mots réservés du sql) ET une fonction php (date())
    Alors, pour bien faire, il vaudrait mieux renommer ton champ
    MySQL n'est, en réalité, pas aussi strict :
    Citation Envoyé par http://dev.mysql.com/doc/refman/5.0/fr/reserved-words.html
    Les symboles suivants (issus de la table ci-dessus) sont interdits par ANSI SQL mais permis par MySQL en tant que noms de colonnes ou de tables. Cela est dû au fait que ces noms sont très courants, et de nombreux programmeur les ont déjà utilisés.
    • ACTION
    • BIT
    • DATE
    • ENUM
    • NO
    • TEXT
    • TIME
    • TIMESTAMP
    Sachant que l'on peut passer outre ce genre de "restriction" en protégeant le nom de ses champs par des backquotes. (à éviter, j'en conviens, dans la mesure du possible)

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Merci pour vos réponses, j'ai résolu mon problème, je devais être trop fatigué vendredi dernier donc ma requête marche avec cette syntaxe :
    $sql = "SELECT * FROM utilisateur WHERE date > '2008/02/03'";

    En faite je crois que ça marchait pas parce que je m'étais logé sur la mauvaise bdd (j'en ai une de test et la vrai), et celle de test devait être vide.

    Celira : si je n'ai pas mis le message d'erreur c'est qu'il n'y en avait pas (ça devait marchait mais vu que ma bdd était vide forcement ça n'affichait rien

    Désolé d'avoir fait perdre votre temps pour une erreur d'inattention. Et merci quand même.

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

Discussions similaires

  1. [PDO] General error: 2031 sur une requête qui marche avec PHPMyAdmin
    Par laurentSc dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 14/12/2015, 13h17
  2. Réponses: 7
    Dernier message: 25/01/2011, 00h48
  3. Réponses: 1
    Dernier message: 27/11/2010, 15h43
  4. Réponses: 6
    Dernier message: 07/09/2008, 17h31
  5. Requête qui passe dans phpmyadmin mais pas en direct
    Par guidav dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/02/2008, 15h00

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