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 :

Variable dans une condition where [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 184
    Par défaut Variable dans une condition where
    bonjour à tous,

    avant tout, je debute donc ma demande peut paraitre bizarre, mais bon.
    j'ai une table qui s'appelle produit donc il y a 3 colonnes
    n° qui est en clé primaire
    articles
    prix

    je desire modifier le prix en fonction du n° de ma table,donc voila ce que j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if  (isset($_POST['valide'])){
    $id = $_POST['n°'];	
    $articles=$_POST['articles'];
    $prix=$_POST['prix'];
    $res=$pdo->prepare("UPDATE produit SET articles =:articles ,prix=:prix  WHERE n°=  '$id'  ");
    $res->execute(array(
        ':articles'=>$articles,
        ':prix'=>$prix    )) ;
    }
    quand je desire appliquer le code j'ai un message d'erreur
    Undefined index: N_ID in C:\wamp\www\projets\agro.php on line 25
    si j'enleve '$id' et je le remplace par un numero ex:6 effectivement ma mise à jour prend effet.
    pouvez vous m'aider à resoudre ce soucis?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1/Existe-il un champ de formulaire avec comme name "" ???
    A ta place, j'éviterais les caractères spéciaux (de même que les espaces !) dans les noms de variables et de champs de tables.

    2/ Tu as raté une étape dans la compréhension du concept de "requête préparée" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $res=$pdo->prepare("UPDATE produit SET articles =:articles ,prix=:prix  WHERE n°=  '$id'  ");
    $res->execute(array(
                        ':articles'=>$articles,
                          ':prix'=>$prix    )) ;
    s'écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $res=$pdo->prepare("UPDATE produit SET articles =:articles, prix=:prix WHERE num = :id  ");
    $res->execute(array(
                        ':articles'=>$articles, 
                        ':prix'=>$prix,
                        ':id'=>$id
                        )) ;

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 184
    Par défaut
    merci pour ta réponse rapide, pour répondre à ta première question ,non je n'ai pas ce champ dans mon formulaire.
    si j'ai bien compris il faut qu'il exite une zone correspondant à mon numéro de ma table sur le formulaire?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Il faut bien sélectionner le bon article, non ?

    Donc, (par exemple) avec une liste déroulante (construite à partir de la BdD) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <select name="num">
       // requete "SELECT....... 
       // pour chaque ligne de la table :
       <option value="<?php echo $row['num']; ?>"><?php echo $row['articles']; ?></option>
     
    </select>

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 184
    Par défaut
    j'ai éssayé de faire une autre façon que la tienne car a vrai dire le fait d'avoir une liste déroulante ne me plait pas trop
    voici ce que j' ai fait:

    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
    if  (isset($_POST['valide']))
     
    {
    $sql=$pdo->query( "SELECT num FROM produit " );			
    while( $data = $sql->fetch())
    echo $data['num']."<br/>"	;
    {
     
    $id=$data['num'];	
    $articles=$_POST['articles'];
    $prix=$_POST['prix'];
    $res=$pdo->prepare("UPDATE produit SET articles =:articles, prix=:prix WHERE num = :id  ");
    $res->execute(array(
                                 ':articles'=>$articles, 
                                 ':prix'=>$prix,
                                 ':id'=>$id
                                                              )) ;
    }			
     
    }
    une petite precision que je n'ai pas faites valide est un bouton qui se trouve dans le tableau.
    pour le moment j'arrive bien a lire tout mes ID ,mais quand l'update s'effectue ,il s'effectue sur tout mes enregistrements.
    est ce qu'en rajoutant une condition dans mon select cela pourrait m'aider qu'a garder l'ID qui m'interesse.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Montre ton formulaire.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/01/2017, 16h07
  2. [MySQL] Introduire une variable dans la clause where
    Par ledisciple dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 13/08/2009, 12h39
  3. acceder à une variable qui est dans une condition
    Par Snipy dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2009, 12h39
  4. variable dans la condition d'une requete
    Par .TKrD. dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 30/04/2009, 11h22
  5. Fonction MAX dans une condition WHERE
    Par borgfabr dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/10/2004, 16h06

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