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 :

Modification par UPDATE


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Par défaut Modification par UPDATE
    Bonjour à tous et toutes

    J'essais de mettre au point un bon de commande dans lequel le visiteur devra avoir la possibilité de modifier certaines données telle que la quantité de produit...
    J'ai donc monté un bon de commande avec 3 champs a renseigner (dans un premier temps) "la reference", "la taille" et "la quantité".
    Avec cette premiere partie je n'ai pas de probleme, tout s'inscrit normalement dans la BDD.

    J'ai donc rajouté un bouton pour permettre au visiteur de pouvoir agir sur la quantité.
    Voilà donc une partie du code qui m'affiche sa commande, le bouton qui permet de modifier la quantité jusqu'a la fin du "</form>
    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
    <?php 
    if(!isset($_GET['prod'])){
    require('inc_connect.php');
     
    $sql="SELECT * FROM pros  ORDER BY id desc  limit 0, 1 ";
    $req=mysql_query($sql,$connexion)or exit ('Erreur SQL !'.$sql.'<br>'.mysql_error());
    while( $data=mysql_fetch_array($req) ) {
    ?>
    <form method="POST" name="commander" action="http://www.******/commande_2.php" onSubmit="return verification()">
    <?php
    $qte=$data['qte'];
    $modele=$data['modele'];//nom du modele
    echo"<tr bgcolor=#ffffff><td align='center'>".$data['reference']." </td><td align='center'>".$data['modele']." </td><td align='center'>".$data['taille']." </td><td align='center'>".$data['qte']." </td><td align='center'> ".$data['pu']."</td></tr>".
        "<tr><td colspan='5'align='center'>  <input type='submit' name='action' value='Ajouter au caddie' class='item_price'></td></tr>".
     
        "<input name='id' type='hidden' value='".$data['id']."'></form>";
    ?>
    <form method="POST" name="commander" action="http://www.******/calcul_2.php">
     
    <tr><td><table><tr><td colspan='4'align='center'>Modifier Quantité :  <input type="text" name="qte" size="5" value="<?php echo $qte ; ?>"><input type="submit" value="Modifier">
     
    <input type="hidden" value="<?php echo $reference; ?>" name="mod" id="mod">
        <input type="hidden" value="<?php echo $taille; ?>" name="mod" id="mod">
        <input type="hidden" value="<?php echo $modele; ?>" name="mod" id="mod">
     
    	   </td></tr></table></form>
           <?php
     
    }
     
    mysql_close();
     
    ?>
    et la partie du code qui est sensée faire la modif dans la base de données.
    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
    <?php session_start(); 
    if(!isset($_SESSION['login'])) 
    { 
    exit; 
    }
     
    if(isset($_POST['reference'])) $reference=$_POST['reference']; else $reference="";
    if(isset($_POST['taille'])) $taille=$_POST['taille']; else $taille="";
    if(isset($_POST['qte'])) $qte=$_POST['qte']; else $qte="";
    if(isset($_POST['modele'])) $modele=$_POST['modele']; else $modele="";
     
     
    $db = mysql_connect('mysql***, 'nombase', 'motdepasse')  or die('Erreur de connexion '.mysql_error());
    
    if( $modele == 'Bonnet' && ( $qte >= 10 && $qte <= 19 ) ) 
     { $pu=5.00 ; }
     elseif ( $modele == 'Bonnet' && ( $qte >= 20 && $qte <= 49 ) )
     { $pu=3.25 ; } 
     else { $pu='' ; } 
    	
    $client=$_SESSION['login'];
    
    $sql= "UPDATE pros SET qte='$qte',  pu='$pu' WHERE client='$client' ";
    
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    
    
    mysql_close();
    echo $pu ;
    
    ?>
    Avec ce code, j'ai bien la nouvelle quantité qui est affichée et inscrite dans la base de données, par contre je n'ai plus rien concernant le prix unitaire...
    PU est totalement vide.
    J'ai forcement loupé qq chose, mais je n'arrive pas à trouver ou je me suis trompé, de plus je ne sais pas si c'est une erreur PHP pure ou SQL pure...
    Quoi qu'il en soit merci à vous de passer un petit moment sur mon probléme.
    Cordialement

  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
    Par défaut
    As-tu fais le debug minimum a savoir afficher $modele, $quantite au debut puis $sql pour voir comment se deroulait ton test de conditions ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Par défaut
    Désolé, mais je ne suis pas un developpeur confirmé....

    Tout ce que je peux te dire c'est que dans ma premiere partie, tout fonctionne bien...
    Le client rentre "la reference", "la taille", et "la quantité", et je crée le champ "pu" qui est variable en fonction de la quantité.
    La BDD est correctement alimentée, et le tout s'affiche parfaitement dans la recap de la commande.
    Lorque la quantité est modifiée, je recupere presque tout... à savoir :
    "la reference", "la taille" et "la quantité", mais je n'arrive pas a faire afficher le nouveau "pu" (prix unitaire), autant à l'affichage que dans la base de donnée.

    Je ne sais pas ce que tu appelles le "debug minimum"

    Merci à toi

  4. #4
    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
    Par défaut
    Ce que je t'ai mis : affiche tes variables avec un simple echo ou un var_dump()

    Si $pu est vide c'est a priori que tu ne rentres dans aucune de tes conditions sur $modele et $qte.
    Affiche donc $modele et $qte avant ta condition.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. pb de modification par formulaire
    Par milielf dans le forum Access
    Réponses: 4
    Dernier message: 23/05/2006, 12h07
  2. champs obligatoires (modification par formulaire)
    Par milielf dans le forum Access
    Réponses: 2
    Dernier message: 22/05/2006, 11h36
  3. Mja par Update
    Par jmde dans le forum Access
    Réponses: 6
    Dernier message: 16/09/2005, 15h41
  4. [SYBASE] nombre de ligne impactée par UPDATE
    Par metheorn dans le forum Sybase
    Réponses: 3
    Dernier message: 14/05/2004, 16h47

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