+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Invité de passage
    Inscrit en
    février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : février 2011
    Messages : 12
    Points : 2
    Points
    2

    Par défaut Post PHP - Problème certainement simple

    Bonjour à tous,

    Je développe une caisse ultra light pour mon resto de pâtes fraiches.

    quelque chose m'échappe.

    J'ai 2 boutons, je souhaite simplement que en cliquant sur le bouton 1, ça mette à jour un champ de la dernière ligne de ma table et que en cliquant sur le bouton 2 ça mette à jour un autre champ de la dernière ligne de ma table.

    Exemple :

    Clic sur le bouton 1 : Update du champ cmd1 du max(id)
    Clic sur le bouton 2 : Update du champ cmd2 du max(id)

    le soucis est que j'ai beau retoucher, retourner le code, au lieu de faire update sur un seul champ, ça efface l'un et remplie l'autre.

    Mon code :

    Code html :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <form method='POST' action='caisse.php' enctype='multipart/form-data'>	
    <input type="hidden" name="plat1" value="carbonara">
    <input type="submit" name="bouton1" value="carbonara">
    </form>
     
    <form method='POST' action='caisse.php' enctype='multipart/form-data'>
    <input type="hidden" name="plat2" value="4fromages">
    <input type="submit" name="bouton2" value="4fromages">
    </form>
     
    </form>

    puis

    Code :
    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
    <?php 
    $c = mysql_connect("localhost","*****","*****") or die("connexion impossible"); 
    mysql_select_db("caisse") or die("base non trouvée"); 
    $sql = 'SELECT MAX(id) as id FROM tablecaisse';
    if($p = @mysql_query($sql,$c)){
    while($val = @mysql_fetch_array($p)){
    $maxid = $val["id"];	
     
     
    echo "Ticket N° $maxid";
     
    }
    }
     
     
    //affichage de la commande
    echo "
    <br><br>
     ";
     
     
    if(isset($_POST['bouton1']))      $plat1=$_POST['bouton1'];
    else      $plat1="";
    mysql_query(" UPDATE tablecaisse SET cmd1 ='$plat1' WHERE id='$maxid' LIMIT 1 ");
    if(isset($_POST['bouton2']))      $plat2=$_POST['bouton2'];
    else      $plat2="";
    mysql_query(" UPDATE tablecaisse SET cmd2 ='$plat2' WHERE id='$maxid' LIMIT 1 ");
    mysql_close();
    ?>
    Merci d'avance pour vos réponses.

  2. #2
    Membre confirmé Avatar de shell13010
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2008
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : mars 2008
    Messages : 271
    Points : 247
    Points
    247

    Par défaut

    Je suis pas sur que MAX peut-être utilisable la ou tu la placer, mais c'est a confirmé?

    sinon j'aurais fait une rêquete simple de se type:

    Code :
    UPDATE tablecaisse SET cmd2 ='.$plat2.' ORDER BY id DESC LIMIT 1;
    "Quelle prétention de prétendre que l'informatique est récente: Adam et Eve avaient déjà un Apple!"

  3. #3
    Responsable Livres

    Avatar de MaitrePylos
    Homme Profil pro
    DBA & Dev PHP
    Inscrit en
    juin 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA & Dev PHP
    Secteur : Service public

    Informations forums :
    Inscription : juin 2005
    Messages : 3 858
    Points : 8 798
    Points
    8 798

    Par défaut

    on peut voir le schéma de la db ?

  4. #4
    Membre confirmé Avatar de bourvil
    Profil pro
    Inscrit en
    juin 2002
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : Israël

    Informations forums :
    Inscription : juin 2002
    Messages : 398
    Points : 271
    Points
    271

    Par défaut

    C'est normal que le UPDATE se fasse sur les deux champs, tu as un pb non pas ds ta requete mais ds ton code PHP.

    voici ton code:
    Code :
    1
    2
    3
    4
    5
    6
    7
     
    if(isset($_POST['bouton1']))      $plat1=$_POST['bouton1'];
    else      $plat1="";
    mysql_query(" UPDATE tablecaisse SET cmd1 ='$plat1' WHERE id='$maxid' LIMIT 1 ");
    if(isset($_POST['bouton2']))      $plat2=$_POST['bouton2'];
    else      $plat2="";
    mysql_query(" UPDATE tablecaisse SET cmd2 ='$plat2' WHERE id='$maxid' LIMIT 1 ");
    les "if" ne font que changer la valeur de $plat mais le update ce fait tjs.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //si bouton1 alors update le champs cmd1
    if(isset($_POST['bouton1'])) 
    {   
       $plat1=$_POST['bouton1'];
       mysql_query(" UPDATE tablecaisse SET cmd1 ='$plat1' WHERE id='$maxid' LIMIT 1 ");
    }
    //si bouton2 alors update le champs cmd2
    elseif(isset($_POST['bouton2'])){
          $plat2=$_POST['bouton2'];
          mysql_query(" UPDATE tablecaisse SET cmd2 ='$plat2' WHERE id='$maxid' LIMIT 1 ");
    }
    Franchement, je suis capable du meilleur comme du pire, mais, dans le pire, c'est moi le meilleur.
    Coluche

  5. #5
    Invité de passage
    Inscrit en
    février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : février 2011
    Messages : 12
    Points : 2
    Points
    2

    Par défaut

    Merci pour votre aide

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •