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

Langage PHP Discussion :

Erreur dans une requete select en php


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 156
    Points : 48
    Points
    48
    Par défaut Erreur dans une requete select en php
    Bonjour à tous,
    Je continue mes demandes. En effet j'ai l'erreur suivante à l'exécution de ma requête select :

    La requete une échoué: Unknown column '$ numQuestion dans «clause WHERE'

    Pourtant quand je fais le test j'ai bien $_SESSION['idQuestion'] qui existe. Dans la précédente page, j'ai affecté la valeur $numQuestion à $_SESSION['idQuestion'].

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <?php
    session_start();
    extract($_SESSION);
     
    /*
    if(!array_key-exists("idUser", $_SESSION)) {
       header("Location : form.php");
       }
     */ 
     
     /*
      if(isset($_SESSION['idQuestion'])) {
          echo 'La variable "idQuestion" existe et vaut: ' . $_SESSION["idQuestion"]; 
    	  echo 'Lavariable "idUser" existe et vaut: ' . $_SESSION["idUser"]; 
    	  exit;
    	  }  
    */
     
    //connexion au serveur
         $host = "localhost";
         $user = "root";
         $pass = "";
     
         $connexion=@mysql_connect($host, $user, $pass) or die("La connexion a échoué :".mysql_error());
     
    //connexion à la BD
       $bd = "profilapprenant";
       @mysql_select_db($bd, $connexion) or die ("selection impossible:".mysql_error()); 
     
    //Requete selection
    $query='select * from mot where
                     ligne = $numQuestion order by colonne asc';
     
    $result=mysql_query($query) or die("La requete a échoué:".mysql_error());
     
     while($var=mysql_fetch_array($result)){
        extract($var);
    	echo "$mot<input type=\"text\" name=\"score[idMot]\" size=\"2\"/>";
    	}
     
    	echo "<input type=\"submit\" value=\"Envoyer\"/>";
     
    ?>
    Si quelqu'un peut m'expliquer l'origine de cette erreur je l'en remercie

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2009
    Messages : 114
    Points : 185
    Points
    185
    Par défaut
    la variable $numQuestion n'est pas initialisé, c'est une variable qui ne contient pas de valeur !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 156
    Points : 48
    Points
    48
    Par défaut
    Si, je l'ai initialisé avec la valeur 1 dans la page inscription.php comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //Ceation d'une variable pour le numero de question
    $numQuestion = 1;
     
    $_SESSION["idUser"]=$numIndividu;
    $_SESSION["numQuestion"]=$numQuestion;
     
    header("Location: question.php");

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2009
    Messages : 114
    Points : 185
    Points
    185
    Par défaut
    oui mais il faut l'initialiser dans l'autre page aussi car chaque page est indépendante de l'autre tu peux utiliser la variable session crée dans la page inscription.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $numQuestion = $_SESSION["numQuestion"];

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 156
    Points : 48
    Points
    48
    Par défaut
    Merci pour ta réponse. J'ai fait ce que tu m'as dit et voici l'erreur :

    Notice: Undefined index: numQuestion in C:\wamp\www\SP1_Kolb\question.php on line 4
    La requete a échoué:Unknown column '$numQuestion' in 'where clause'

    QU'en penses tu ?

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2009
    Messages : 114
    Points : 185
    Points
    185
    Par défaut
    à chaque foi poste ton code pour mieux voir les erreurs

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 156
    Points : 48
    Points
    48
    Par défaut
    ok, voici le 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <?php
    session_start();
    extract($_SESSION);
     
     
    /*
    if(!array_key-exists("idUser", $_SESSION)) {
       header("Location : form.php");
       }
     */ 
     
     /*
      if(isset($_SESSION['idQuestion'])) {
          echo 'La variable "idQuestion" existe et vaut: ' . $_SESSION["idQuestion"]; 
    	  echo 'Lavariable "idUser" existe et vaut: ' . $_SESSION["idUser"]; 
    	  exit;
    	  }  
    */
     
    //connexion au serveur
         $host = "localhost";
         $user = "root";
         $pass = "";
     
         $connexion=@mysql_connect($host, $user, $pass) or die("La connexion a échoué :".mysql_error());
     
    //connexion à la BD
       $bd = "profilapprenant";
       @mysql_select_db($bd, $connexion) or die ("selection impossible:".mysql_error()); 
     
    //Requete selection
    $query='SELECT * from mot WHERE
                     ligne = $numQuestion ORDER BY colonne ASC';
     
    $result=mysql_query($query) or die("La requete a échoué:".mysql_error());
     
     while($var=mysql_fetch_array($result)){
        extract($var);
    	echo "$mot<input type=\"text\" name=\"score[idMot]\" size=\"2\"/>";
    	}
     
    	echo "<input type=\"submit\" value=\"Envoyer\"/>";
     
    ?>

  8. #8
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2009
    Messages : 114
    Points : 185
    Points
    185
    Par défaut
    ajoute un print_r($_SESSION); au début du fichier (après le session_statrt()) et donne moi le résultat de l'affichage

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 156
    Points : 48
    Points
    48
    Par défaut
    Voici le resultat :

    Array ( [idUser] => 4 [idQuestion] => 1 )
    La requete a échoué:Unknown column '$numQuestion' in 'where clause'

  10. #10
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2009
    Messages : 114
    Points : 185
    Points
    185
    Par défaut
    ben c'est claire la session ne contient pas une variable "numQuestion"
    il faut la créer dans la page inscription.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_SESSION["numQuestion"]=$numQuestion;
    et n'oubli pas de vérifier si la variable $numQuestion contient une valeur

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 156
    Points : 48
    Points
    48
    Par défaut
    Désolé de te contredire mais la variable session existe dans inscription.php comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //Ceation d'une variable pour le numero de question
    $numQuestion = 1;
     
    $_SESSION["idUser"]=$numIndividu;
    $_SESSION["numQuestion"]=$numQuestion;

  12. #12
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2009
    Messages : 114
    Points : 185
    Points
    185
    Par défaut
    Array ( [idUser] => 4 [idQuestion] => 1 )

    veut dire que la session ne contient que idUser et dQuestion !

    poste le code de la page inscription.php

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 156
    Points : 48
    Points
    48
    Par défaut
    Ok voici :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <?php
    //On demarre les sessions
    session_start();
    session_destroy();
    session_start();
     
    // On commence par récupérer les champs
    if(isset($_POST['leNom']))      $nom=$_POST['leNom'];
    else      $nom="";
     
    if(isset($_POST['lePrenom']))      $prenom=$_POST['lePrenom'];
    else      $prenom="";
     
    if(isset($_POST['laDateNaissance']))      $dateNaissance=$_POST['laDateNaissance'];
    else      $dateNaissance="";
     
    if(isset($_POST["leNiveauBac"]))      $niveauBac=$_POST["leNiveauBac"];
    else      $niveauBac="";
     
    // On vérifie si les champs sont vides
    if(empty($nom) OR empty($prenom) OR empty($dateNaissance) OR empty($niveauBac))
        {
        echo '<font color="red">Attention, tous les champs doivent être saisies !</font>';
    	echo "<br>";
    	echo "<a href=\"form.php\">Retour à la page d'acceuil</a>";
    	exit;
        }
     
    // Aucun champ n'est vide, on peut enregistrer dans la table
    else     
        { 
         //connexion au serveur
         $host = "localhost";
         $user = "root";
         $pass = "";
     
         $connexion=@mysql_connect($host, $user, $pass) or die("La connexion a échoué :".mysql_error());
        }
     
    //connexion à la BD
    $bd = "profilapprenant";
    @mysql_select_db($bd, $connexion) or die ("selection impossible:".mysql_error()); 
     
    //On effectue la requete
    $query = "INSERT INTO individu (numIndividu, nomIndividu, prenomIndividu, dateTest, dateNaissance, niveauEtudeInd) VALUES (
    '',
    '" . mysql_real_escape_string($nom) ."',
    '" . mysql_real_escape_string($prenom) ."',
    CURDATE(),
    STR_TO_DATE('" . mysql_real_escape_string($_POST['laDateNaissance']) ."'
    , '%d-%m-%Y'),
    '" . mysql_real_escape_string($niveauBac) ."')";
     
     
    //On insère les données du formulaire dans la table 	
    $result = mysql_query($query) or die ("La requete a échoué:".mysql_error());
     
    // on affiche le résultat pour le visiteur
        echo 'Vos infos on été ajoutées.'; 
     
    // creation d'une variable pour enregistrer la valeur de la cle primaire generée avec la focntion mysql_inser_id()
    $numIndividu = mysql_insert_id();
     
    //Ceation d'une variable pour le numero de question
    $numQuestion = 1;
     
    $_SESSION["idUser"]=$numIndividu;
    $_SESSION["numQuestion"]=$numQuestion;
     
    header("Location: question.php");
     
     
    ?>

  14. #14
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2009
    Messages : 114
    Points : 185
    Points
    185
    Par défaut
    dans la session une variable idQuestion qui contient 1 existe et elle n'est pas crée dans inscription.php et dans ton code
    inscription.php tu crée $_SESSION["numQuestion"]=$numQuestion;
    c'est pas normal !!!
    je croix que tu as changeé le nom de la variable idQuestion par numQuestion
    bon, ajoute un print_r($_SESSION) à la fin de inscription.php et au début de l'autre fichier et donne moi les resultats des affichages !

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 156
    Points : 48
    Points
    48
    Par défaut
    Array ( [idUser] => 6 [numQuestion] => 1 ) La requete a échoué:Unknown column '$numQuestion' in 'where clause'

  16. #16
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2009
    Messages : 114
    Points : 185
    Points
    185
    Par défaut
    au moins tu pourras me dire quant tu change le nom d'une variable !!!
    je croix dans le champ ligne de ta table mot la valeur 1 n'existe pas vérifie ta BD
    et avant d'ajouter la variable $numQuestion dans la requete écrit ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $numQuestion = intval($numQuestion);

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 156
    Points : 48
    Points
    48
    Par défaut
    Excuse moi je pensais que tu l'avais vu dans le code. Effectivement le champ ligne de ma table mot est vide. Par contre le type est bien int.
    Que dois je faire ?

  18. #18
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2009
    Messages : 114
    Points : 185
    Points
    185
    Par défaut
    le champ ligne doit etre de type int et ajoute ce code $numQuestion = intval($numQuestion); avant la requete !

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 156
    Points : 48
    Points
    48
    Par défaut
    Attention 1 existe bien dans ligne. Cela se présente comme ceci :
    idMot : 1
    ligne : 1
    colonne : 1

    J'ai fait ce que tu m'as dit mais toujours le même probléme :

    Array ( [idUser] => 7 [numQuestion] => 1 ) La requete a échoué:Unknown column '$numQuestion' in 'where clause'

    [Édit]
    OK baderahmed, j'ai trouvé, il manquait les doubles quotes à la variable $numQuestion

  20. #20
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2009
    Messages : 114
    Points : 185
    Points
    185
    Par défaut
    réécrit la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $query='SELECT * from mot WHERE
                     ligne = "'.$numQuestion.'" ORDER BY colonne ASC';

Discussions similaires

  1. erreur dans une requete en php
    Par owenho dans le forum Langage
    Réponses: 9
    Dernier message: 03/06/2012, 12h21
  2. [MySQL] Erreur : ajout d'antislash dans une requete SELECT
    Par kaki33 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 03/07/2008, 11h50
  3. [VB.NET]Erreure dans une requete
    Par damaskinos dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/03/2006, 19h30
  4. Afficher le numéro de ligne dans une requete SELECT
    Par tilb dans le forum Langage SQL
    Réponses: 4
    Dernier message: 01/09/2004, 10h20
  5. Eviter plusieurs OR dans une requete SELECT
    Par zoubidaman dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/06/2004, 05h56

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