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

Requêtes et SQL. Discussion :

Problème clause "like" dans une requête


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Points : 18
    Points
    18
    Par défaut Problème clause "like" dans une requête
    Salut,

    J'ai un petit soucis, quand je fais cette requête dans Access:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM TActivite WHERE (((TActivite.Date) Like "*2008*"))
    Il me sort, comme prévu, toutes les activités qui se sont passées en 2008. Maintenant je fais la requète dans PHP et j'affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql3 = 'SELECT * FROM TActivite WHERE (((TActivite.Date) Like "*2008*"))';
    $result3=odbc_exec($cnx,$sql3);
    echo "Date: ".odbc_result($result3, "Date");
    mais rien ne s'affiche, il ne trouve rien. Maintenant si je fais la même requête sans la clause "Like" et en ne changeant rien d'autre cela fonctionne...

    Je m'arrache les cheveux depuis ce matin avec cette requête alors si quelqu'un a la solution je lui en serai très reconnaissant

    Merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 117
    Points : 149
    Points
    149
    Par défaut
    Salut

    Je sais pas mais en PHP le caractère générique est le même que sous Access (*) ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Normalement c'est le %, mais j'ai essayé avec les 2, aucun ne fonctionne...

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 117
    Points : 149
    Points
    149
    Par défaut
    et comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql3 = "SELECT * FROM TActivite WHERE TActivite.Date Like ('%2008%')";

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Magnifique ça fonctionne! t'es un chef merci beaucoup!

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    heu, si je reprends ta notation mais que je veux mettre le mois, ça devrait donner ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql3 = "SELECT * FROM TActivite WHERE TActivite.Date Like ('%01/2008%')";
    ou cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql3 = "SELECT * FROM TActivite WHERE TActivite.Date Like ('%1/2008%')";
    Mais là, ça ne fonctionne plus...

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 117
    Points : 149
    Points
    149
    Par défaut
    Vérifie que le caratère "/" n'est pas un caractère d'échaeppement

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    ben même si ça l'est, il se trouve dans ma date donc je suis bien obligé de le mettre... non?

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 117
    Points : 149
    Points
    149
    Par défaut
    Oui et non, il faut le doubler enfin si c'est ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql3 = "SELECT * FROM TActivite WHERE TActivite.Date Like ('%01//2008%')";

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    ça ne marche pas en le doublant malheureusement...

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 117
    Points : 149
    Points
    149
    Par défaut
    Le caractère d'échappement en PHP "\"

    Es-tu sûr que ton champ contient les valeurs que tu recherches ?

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Oui oui, absolument certain...

    aussi tenté avec le \, sans succès... quelle M*****!

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 117
    Points : 149
    Points
    149
    Par défaut
    Et sous Access tu as essayé ta requête ?

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Ben comme ça oui:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM TActivite WHERE (((TActivite.Date) Like "*01/2008*"))
    vu que toute façon les % ne sont pas pris en compte par Access... je comprends plus rien moi...

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 117
    Points : 149
    Points
    149
    Par défaut
    ga mal exprimé

    Tu as testé ta requête sous Access avec les modifications nécessaires et tu as obtenu un résultat ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM TActivite WHERE TActivite.Date Like ("*01/2008*")
    et sous PHP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql3 = "SELECT * FROM TActivite WHERE TActivite.Date Like ('%1\/2008%')";

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    J'ai essayé les 2. La première fonctionne sur Access mais la deuxième ne fonctionne pas avec PHP...

  17. #17
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 117
    Points : 149
    Points
    149
    Par défaut
    Je vais poser une question bête : Est-ce que ton champ de base est en date ou en chaine de caractère ?

    En tout cas je sèche aussi sur ce coup .....

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Il est en Date/time... c'est pour ça que je met aussi le % après le 2008...

    Malheureusement ce n'est pas moi qui ai créé la BDD et elle est un peu mal conçue... et si j'avais du la faire moi, je ne l'aurai pas fait avec Access en sachant que j'allais la faire intéragir avec PHP!

    C'est pas grave, je vais essayer de chercher encore un peu même si là j'ai un peu de mal... en plus c'est la fin de la journée je n'arrive plus à réflechir

  19. #19
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 117
    Points : 149
    Points
    149
    Par défaut
    allez un dernier essai !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql3 = "SELECT * FROM TActivite WHERE TActivite.Date Like (\"%1/2008%\")";

  20. #20
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Bonjour

    Avec Access, tu faire ta requete ainsi :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM TActivite WHERE year(Date)=2008
    Et pour le mois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM TActivite WHERE year(Date)=2008
     and month(Date)=1

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/12/2012, 12h23
  2. [2005] Problème pour passer un paramètre dans une requête MDX
    Par mochi dans le forum SSRS
    Réponses: 6
    Dernier message: 06/06/2012, 16h26
  3. Problème d'encodage du point dans une requête POST
    Par ultraboa dans le forum ActionScript 3
    Réponses: 3
    Dernier message: 07/02/2009, 21h58

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