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 :

Problème dans mon code entre une recherche mysql et en php [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 195
    Points : 77
    Points
    77
    Par défaut Problème dans mon code entre une recherche mysql et en php
    Bonjour
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
     
    //ELECT * FROM `retenues` WHERE  order by elenom
    if (isset($motclef))
    {
     $clause = " where Quand1='$motclef' and AND Fait1='N'";
    }
    $orderby = " ORDER BY Heures1";
    $sql = "SELECT * FROM retenues" . $clause . $orderby;
    $resultat = mysql_query ($sql);
    echo $sql;
     
    while ($eleve = mysql_fetch_array ($resultat))
    {
     
    ?>
    cela m'affiche tout y compris les Fait1=O (comme OUI)

    Je précise que si je fais simplement sans "and AND Fait1='N'" mon formulaire fonctionne bien en filtrant sur la date.

    si je fais ça dans mysql:
    SELECT * FROM `retenues` WHERE `Quand1` = '1/12/2008' AND `Fait1` = 'N'
    il me filtre bien...
    je ne comprends pas ou est le problème...
    Quand1 est un varchar
    Fait1 idem sur 1 caractère

  2. #2
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as "and AND" dans ton $clause.

    est-ce que tu as controlé ce que contenant $sql à la fin ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 195
    Points : 77
    Points
    77
    Par défaut code marche pas
    Mon code est bien: même si je supprimes le "and" en plus (parasite)
    J'ai tout essayé:
    Fait1='N'
    Fait1=N etc
    je ne comprends pas, je vais essayer de voir mon $sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
     
    //SELECT * FROM `retenues` WHERE  order by elenom
    if (isset($motclef))
    {
     $clause = " where Quand1='$motclef' AND Fait1=N";
    }
    $orderby = " ORDER BY Heures1";
    $sql = "SELECT * FROM retenues" . $clause . $orderby;
    $resultat = mysql_query ($sql);
    echo $sql;
     
    while ($eleve = mysql_fetch_array ($resultat))
    {
     
    ?>
    $sql me donne
    SELECT * FROM retenues where Quand1='21/12/2008' AND Fait1 like N ORDER BY Heures1
    j'ai essayé avec like....
    une idée ?
    en mysql ce code fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'SELECT * FROM retenues where Quand1=\'1/12/2008\' AND Fait1=\'N\' ORDER BY Heures1';
    c'est dingue, ce code en mysql fonctionne:
    SELECT * FROM retenues where Quand1='1/12/2008' AND Fait1 like 'N' ORDER BY Heures1
    si je fais en php:
    SELECT * FROM retenues where Quand1=\'2/12/2008\' AND Fait1='N' ORDER BY Heures1

  4. #4
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    Bonjour,

    Ca ne résoudra pas ton problème mais quand tu testes une valeurs chaîne de caractère il est préférable d'utiliser LIKE.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 195
    Points : 77
    Points
    77
    Par défaut résolu
    ça semble résolu avec ce code (pour servir à d'autres)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
     
    //SELECT * FROM `retenues` WHERE  order by elenom
    if (isset($motclef))
    {
     $clause = "AND Quand1='$motclef'";
    }
    $orderby = " ORDER BY Heures1";
    $sql = "SELECT * FROM retenues where Fait1='N' " . $clause . $orderby;
    $resultat = mysql_query ($sql);
    echo $sql;
     
    while ($eleve = mysql_fetch_array ($resultat))
    {
     
    ?>
    merci en tout cas

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

Discussions similaires

  1. [Débutant] Problème dans mon code ! (+ une question)
    Par thtghgh dans le forum MATLAB
    Réponses: 7
    Dernier message: 03/05/2009, 18h25
  2. Réponses: 3
    Dernier message: 15/03/2008, 15h15
  3. Problème dans mon code
    Par curro dans le forum Débuter
    Réponses: 14
    Dernier message: 29/08/2007, 01h46
  4. Réponses: 2
    Dernier message: 03/05/2007, 09h00
  5. Réponses: 13
    Dernier message: 17/10/2006, 15h35

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