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 :

requete invalide...mé fonctionne dans l'executeur de requete [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 45
    Par défaut requete invalide...mé fonctionne dans l'executeur de requete
    bonjour,

    j'ai un probleme avec une requete:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $sql1="Select * From resultats where id_question=".$val[0]." and annee=".$annee;
    $rs1=mysql_query($sql1, $conn) or die ("Requête invalide");
    la variable $val[0] peut etre remplacé par '4'
    la variable $annee peut etre remplacé par '2eme Licence'

    quand je fais un copier coller de la requete dans l'exécuteur de requete de easy php et que je remplace mes variables par les valeurs ci dessous, il n'y a aucun probleme... tout ce passe bien
    Mais quand je lance ma page php, il me dit : "requete invalide" alors que la connexion a la bd c'est bien passé

    Quelqu'un a t-il deja eu ce probleme???
    quelqu'un aurait-il une solution???

    merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Par défaut
    Ce n'est pas comme ca qu'il faut faire le test ..
    il faut faire un echo de $sql et copier ce qui s'affcihe dans IE !

    Tu dois alors recuperer un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Select * From resultats where id_question="4" and annee=2eme Licence
    Et ca peut pas marcher annee est un char il faut mettre "" devant et pares ta variable !

    Est-ce ca ?

  3. #3
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 890
    Par défaut
    Salut,

    Tu as oublié les apostrophes me semble-t-il.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql1="Select * From resultats where id_question='".$val[0]."'' and annee='".$annee."'";

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Il faut mettre des guillemets supplémentaires autour de tes valeurs non numériques.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql1 = 'Select * From resultats where id_question='.$val[0].' and annee="'.$annee.'"';
    Cf. le chapitre de la doc sur les chaînes.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 45
    Par défaut
    merci

    j'ai pris cette ligne ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql1 = 'Select * From egss_resultats where id_question='.$val[0].' and annee="'.$annee.'"';
    et ca fonctionne!

  6. #6
    Membre expérimenté
    Inscrit en
    Septembre 2005
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 185
    Par défaut
    pense toujours à faire un echo de ta requête pour savoir si toutes tes valeurs sont renvoyées.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql1 = 'Select * From resultats where id_question='.$val[0].' and annee="'.$annee.'"';
    echo"$sql";

  7. #7
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 890
    Par défaut
    Ca n'est pas standard, normalement il faut utiliser des simples quotes ( apostrophes ) et pas des doubles quotes ( guillemets ) dans l'écriture des chaines de caractères.

    De plus, il est mieux de faire comme ceci je pense :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $id_question = $val[0];
    $annee = addslashes($annee);
    $sql1 = "Select * From resultats where id_question=$id_question and annee='$annee'";

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 03/08/2011, 17h19
  2. Requete SQL BETWEEN fonctionne dans le bash mais pas dans mon script?
    Par ssc37 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 09/03/2009, 11h01
  3. regrouper plusieurs champ dans un seul en requete
    Par Nicko29 dans le forum Access
    Réponses: 12
    Dernier message: 07/09/2005, 18h29
  4. [Oracle] Probleme dans l'exécution de requetes
    Par Floverdoz dans le forum Bases de données
    Réponses: 10
    Dernier message: 14/06/2005, 18h03
  5. Prb de fonctionnement dans SaveDialog avecInitialDir
    Par boyerf dans le forum Composants VCL
    Réponses: 4
    Dernier message: 12/12/2002, 21h46

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