[php/mysql] bouton supprimer

Résolu
Bonjour,

Voila j'ai une petit problème , j'ai une liste qui affiche des produits puis quand je clic sur un produit mes formulaires ce remplisse.

Mon problème c'est que je voudrais incorporé un bouton supprimer qui ferai que lorsque je sélectionne un produit dans ma liste, je l'effacerai avec mon bouton supprimer, biensur cala effacerai aussi mon produit dans ma bdd.

Voila si quelqu'un pourrait m'aider ça super gentil.

Merci d'avance

ps: voici mon code

<?php
$connexion=mysql_connect('localhost','root',"") or die ("Connexion impossible.");
$db=mysql_select_db('vigicontrole',$connexion) or die ("Base de données non accessible.");

echo '<p>Choisissez un produit:</p>';

echo"<form name='form1' action='listephp.php' method='POST'>";
echo '<select name="PDT" size="7" id="produit" onChange="this.form.submit()">';

$resultat=mysql_query("select PROD from produit order by PROD") or die ("Requête non executée.");

while ($ligne=mysql_fetch_array($resultat))
{

$selected=($ligne["PROD"]==$_POST["PDT"])?" selected":"" ;
echo '<option '.$selected.'>'.$ligne["PROD"].'</option>';
;
}
echo '</select>';
//echo '<input type="submit" value="Afficher" name="go">';
echo '<noscript><input type="submit" value="Afficher" /></noscript>';
echo '</form>';

if(!isset($_POST['PDT']))
{
exit;
}

//Les lignes suivantes affichent le détail d'un produit
// si l'utilisateur en a choisi un
$PDT = $_POST['PDT'];
$resultat2 = mysql_query("Select * from produit where PROD='$PDT'") or die ("Requête non executée.");
$ligne2 = mysql_fetch_array($resultat2);

echo "<br>";
echo "<br>";

//echo ' <b>Produit : </b>'.$ligne2['prod'].' '.$ligne2['ref'].'<br>';

mysql_close($connexion);
?>
<INPUT type="button" value="Supprimer tout" onClick="SupprimerTout(this.form.liste)">
<INPUT type ="button" name = "Supprimer" value = "Supprimer" onClick="Supprimer(this.form.liste)">
</div>

<div id="d2">
<p align=right>Nom : <input type="text" name="prod" size="18" value="<?php echo $ligne2['prod']; ?>"></p>
<p align=right>Référence : <input type="text" name="ref" size="18" value="<?php echo $ligne2['ref']; ?>"></p>
<p align=right>Achetées ou produites : <input type="text"name="qteap" size="18" value="<?php echo $ligne2['qteap']; ?>"></p>
<p align=right>Stockées période-1 : <input type="text"name="qtep1" size="18" value="<?php echo $ligne2['qtep1']; ?>"></p>
<p align=right>pertes stock : <input type="text"name="qtep" size="18" value="<?php echo $ligne2['qtep']; ?>"></p>
<p align=right>stockées : <input type="text"name="qtes" size="18" value="<?php echo $ligne2['qtes']; ?>"></p>
<p align=right>vendues : <input type="text"name="qte" size="18" Id="vendues" onBlur="calcul_form(this)" value="<?php echo $ligne2['qte']; ?>" ></p>
<p align=right><b>prix de revient<b> : <input type="text"name="prix_achat" size="18" value="<?php echo $ligne2['prix_achat']; ?>"></p>
<p align=right><b>%alarmes Px rev<b> : <input type="text"name="alarme_pr" size="18"value="<?php echo $ligne2['alarme_pr']; ?>" ></p>
<p align=right><b>Prix de ventes<b> : <input type="text"name="prix_vente" Id="prixdeventes" onBlur="calcul_form(this)" size="18" value="<?php echo $ligne2['prix_vente']; ?>" ></p>
<p align=right><b>%alarmes px Vente<b> : <input type="text" name="alarme_pv" size="18" value="<?php echo $ligne2['alarme_pv']; ?>"></p>
Configuration: Windows XP
Firefox 3.0.11

9 réponses

  1. je crois que ça doit etre ref
    au lieu de echo '<option value="'.$row['prod'].'">'.$row['ref'].' '.$row['qtep'].'</option>';

    fais plutot ceci echo '<option value="'.<gras>$row['ref']</gras>.'">'.$row['ref'].' '.$row['qtep'].'</option>';
    parce que c'est la valeur de value dans ton cas $row['prod'] qui est postée.
    1. vas y plutot comme ça !!

      <option value="'.$row['id_produit'].'">'.$row['ref'].' '.$row['qtep'].'</option>';
      1. je viens de trouvé un code mais le problème c'est que lorsque je supprimer le champs selectionné dans ma liste , il efface tous les champs du même nom!

        Comment pourrais-je faire que qu'il efface seulement le champ que je sélectionne ?

        sil-vous-plait une réponse

        voici mon code de suppression:

        <h3>Supprimer un produit</h3>
        <form action="boutonsuppr.php" method="POST">
        <p>Sélectionnez un produit à supprimer</p>
        <select name="liste">
        <?php
        $connexion=mysql_connect('localhost','root',"") or die ("Connexion impossible.");
        $db=mysql_select_db('vigicontrole',$connexion) or die ("Base de données non accessible.");

        $sql = "SELECT prod,ref, qtep FROM produit";
        $res = mysql_query($sql);
        while($row = mysql_fetch_array($res))
        {
        echo '<option value="'.$row['prod'].'">'.$row['ref'].' '.$row['qtep'].'</option>';
        }
        ?>
        </select>
        <input type="submit" value="Supprimer" name="supprimer"/>
        </form>
        <?php

        if(isset($_POST['liste']))

        {
        $rep = $_POST['liste'];

        echo 'coucou les gens HFR';

        /* Debug */

        $requete = "DELETE FROM produit WHERE prod = '$rep'";

        echo $requete;

        mysql_query($requete) or die (mysql_error());

        /* Fin Debug */

        }

        else

        {

        echo 'Erreur';

        }

        mysql_close($connexion);
        ?>
        1. normal si tu te sers pur faire ta suppression et que t'as autorisé le meme nom pour des produits distincts.

          tes elements ont quoi d'unique ?? genre une clé primaire !!
          1. ouais mes éléments ont une clef primaire auto_incrémenté ce qui veut dire que je devrais remplacé

            $requete = "DELETE FROM produit WHERE prod = '$rep'";

            par

            $requete = "DELETE FROM produit WHERE id_produit= '$rep'";

            Hors cela ne marche pas, lorsque je fais cela rien n'est supprimer !
            1. normal que ça marche pas... s'il ne trouve pas de correspondance...

              l'auto_increment c'est ref je suppose.. fais donc ce que j'ai dit un peu plus haut
              1. non l'auto incrément est ce nomme id_produit
            2. merci beaucoup pour ta réponse atspinto mais cela me fait une erreur.