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 :

Unknown column '123' in 'where clause'


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par défaut Unknown column '123' in 'where clause'
    Bonjour,


    J'ai une page web qui affiche une liste des articles à partir d'une table de base de données, devant chaque article affiché, j'ai mis un lien hypertexte nommé "supprimer" qui est supposé effacer cet article de la liste.

    J'ai écrit le code suivant qui affiche la liste des produits de la table:


    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
     
    while($row = mysql_fetch_array($result)) {
    	?>
     
    	  <tr> 
     
    <td><b><?php echo $row["ID_Produit"] ?></b></td>
     
    <td><b><?php echo $row["Désignation"] ?></b></td>
     
    <td><b><?php echo $row["Prix"] ?></b></td>
     
    <td><b><a href="supprimer.php?supprimer=<?php echo $row['ID_Produit']; ?>" title="Supprimer le produit">Supprimer</a></b></td>
     
    	</tr>
     
    <?php 
    }
    La dernière ligne du tableau est un lien vers une page "supprimer.php"qui va effectuer la suppression de l'article.

    Dans la page "supprimer.php", j'ai écrit ce code où j'effectue ma requête sql de suppression et où j'ai mis un lien qui me renvoie vers la page "Produits.php":

    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
     
    <?php
     
     if(isset($_GET['supprimer']))
     
    {
     
    $id  = $_GET["supprimer"] ;
     
    $sql="DELETE FROM articles WHERE ID_Produit=".$id;
     
    mysql_query($sql) or die(mysql_error());
     
    echo '<p><a href="Produits.php">Retour</a></p></center>';
     
    }             
     
    else
     
    { echo 'Pas de suppression.'; }
     
    ?>
    J'ai l'erreur suivante:
    Unknown column '123' in 'where clause'

    '123' c'est l'ID_Produit de un de mes articles.

    Est-ce que ma requête sql est fausse?

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    Il faut entourer ta valeur avec des quotes si le champ n'est pas numérique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql="DELETE FROM articles WHERE ID_Produit='".$id."'";
    Mais il faudrait mieux changer le type de données de ton champ ID_Produit et y mettre des entiers...

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Par défaut
    bonjour,
    $sql="DELETE FROM articles WHERE ID_Produit='".$id."'";
    ou plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql="DELETE FROM articles WHERE ID_Produit='$id'";

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 85
    Par défaut
    Une fois de plus, sécurisez vos entrées !!!!

    http://php.net/manual/fr/function.intval.php

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    Ah oui pardon, A0659 a raison.

    Le problème vient du fait que tu récupère l'id à partir d'un formulaire. Tout ce qui est transmis par le HTML, que ce soit en GET ou en POST, est sous forme de chaîne... Il faut le remettre sous forme numérique avant de l'utiliser :

    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
    if(isset($_GET['supprimer'])) 
    { 
        $id  = intval($_GET["supprimer"]) ;
     
        $sql="DELETE FROM articles WHERE ID_Produit=".$id;
     
        mysql_query($sql) or die(mysql_error());
     
        echo '<p><a href="Produits.php">Retour</a></p></center>';
    				
    }
    else
    {
        echo 'Pas de suppression.'; 
    }

  6. #6
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par défaut
    Merci pour vous tous, ça fonctionne.

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

Discussions similaires

  1. unknown column'a'in where clause
    Par WALAA dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/04/2010, 20h54
  2. erreur : #1054 - Unknown column 'Martin' in 'where clause'
    Par éric1 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/08/2009, 15h29
  3. 1054 - Unknown column 'language_id' in 'where clause'
    Par Tonio_17000 dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/06/2009, 22h01
  4. [MySQL] unknown column "motClef" in WHERE clause
    Par JackBeauregard dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 11/09/2007, 17h15
  5. Unknown column 'xx' in 'where clause'
    Par SaeZ dans le forum Requêtes
    Réponses: 3
    Dernier message: 30/05/2006, 17h25

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