Pb de suppression de la BD php/mysql
Résolu
amine_marc
Messages postés
286
Statut
Membre
-
amine_marc Messages postés 286 Statut Membre -
amine_marc Messages postés 286 Statut Membre -
Bonjour,
J'ai un pb dans mon code PHP de suppression d'une insertion d'une table ou deux tables au même temps selon des boutons radio;
Mon pb exactement, c'est quand je clique sur [supprimer] d'un fournisseur précis, toujours le dernier fournisseur enregistré qui va se supprimer de la BD.
Veuillez me dire où le pb, je ne peux pas avancer dans ce code là.
Voici la partie du code qui nous intéresse:
----------------------------------------------------------------------------------------------------------
<form action='suppression_cli.php' method=GET id='mon_form_supp'>
<input type="radio" name="group" value="sup1" checked>Supprimer seulement le fournisseur <br />
<input type="radio" name="group" value="sup2">Supprimer le fournisseur avec ses produits<br />
<table border="2" bordercolor="" width="400">
<tr><th>Code</th><th>Nom</th><th>Action</th></tr>
<?php
$req=mysql_query("SELECT * FROM fournisseurs");
while($donnees=mysql_fetch_array($req))
{
$code_frns=$donnees['code_frns'];
print ("
<tr>
<td>
<input type='text' name='code' value='".$code_frns."' size=4>
</td>
<td>$donnees[nom_frns]</td>
<td>
");
?>
[ <a href='#' onclick="javascript:document.getElementById('mon_form_supp').submit(); return false;">Supprimer</a> ]
</td>
</tr>
<?php
}
mysql_close();
?>
</table>
</form>
-----------------------------------------------------------------------------------------------------------
et voici le code de la page "suppression_cli.php" :
----------------------------------------------------------------------------------------------------------
<?php
$db=mysql_connect("localhost","root","mysql");
mysql_select_db("ma_bd",$db);
$_code_frns=$_GET['code_frns'];
$_selection_radio=$_GET['group'];
if($_selection_radio=="sup1")
{
$sql1="DELETE FROM fournisseurs WHERE code_frns='$_code_frns'";
$res1=mysql_query($sql1,$db);
}
else
{
$sql2="DELETE FROM fournisseurs WHERE code_frns='$_code_frns'";
$sql3="DELETE FROM produits WHERE code_frns='$_code_frns'";
$res2=mysql_query($sql2,$db);
$res3=mysql_query($sql3,$db);
}
mysql_close();
?>
---------------------------------------------------------------------------------------------------------
J'ai un pb dans mon code PHP de suppression d'une insertion d'une table ou deux tables au même temps selon des boutons radio;
Mon pb exactement, c'est quand je clique sur [supprimer] d'un fournisseur précis, toujours le dernier fournisseur enregistré qui va se supprimer de la BD.
Veuillez me dire où le pb, je ne peux pas avancer dans ce code là.
Voici la partie du code qui nous intéresse:
----------------------------------------------------------------------------------------------------------
<form action='suppression_cli.php' method=GET id='mon_form_supp'>
<input type="radio" name="group" value="sup1" checked>Supprimer seulement le fournisseur <br />
<input type="radio" name="group" value="sup2">Supprimer le fournisseur avec ses produits<br />
<table border="2" bordercolor="" width="400">
<tr><th>Code</th><th>Nom</th><th>Action</th></tr>
<?php
$req=mysql_query("SELECT * FROM fournisseurs");
while($donnees=mysql_fetch_array($req))
{
$code_frns=$donnees['code_frns'];
print ("
<tr>
<td>
<input type='text' name='code' value='".$code_frns."' size=4>
</td>
<td>$donnees[nom_frns]</td>
<td>
");
?>
[ <a href='#' onclick="javascript:document.getElementById('mon_form_supp').submit(); return false;">Supprimer</a> ]
</td>
</tr>
<?php
}
mysql_close();
?>
</table>
</form>
-----------------------------------------------------------------------------------------------------------
et voici le code de la page "suppression_cli.php" :
----------------------------------------------------------------------------------------------------------
<?php
$db=mysql_connect("localhost","root","mysql");
mysql_select_db("ma_bd",$db);
$_code_frns=$_GET['code_frns'];
$_selection_radio=$_GET['group'];
if($_selection_radio=="sup1")
{
$sql1="DELETE FROM fournisseurs WHERE code_frns='$_code_frns'";
$res1=mysql_query($sql1,$db);
}
else
{
$sql2="DELETE FROM fournisseurs WHERE code_frns='$_code_frns'";
$sql3="DELETE FROM produits WHERE code_frns='$_code_frns'";
$res2=mysql_query($sql2,$db);
$res3=mysql_query($sql3,$db);
}
mysql_close();
?>
---------------------------------------------------------------------------------------------------------
6 réponses
-
voilà une solution:
<script type="text/javascript"> function appel_page(code_frns){ //cette fonction va appeler le script de suppression en lui passant en parametre la valeur du bouton radio coché (lu par la boucle) et le code_frns (passé en argument a la fct) //boucle de recherche du bouton radio qui a été coché! for (i=0, i<formulaire_suppr.group.length; i++) { if (formulaire_suppr.group[i].checked) { var valeur_bt_coche = formulaire_suppr.group[i].value; } } //appel du script window.location.href="suppression_cli.php?code_frns="+code_frns+"&group="+valeur_bt_coche+""; } </script> <form name="formulaire_suppr" action='suppression_cli.php' method="GET" id='mon_form_supp'> <input type="radio" name="group" value="sup1" checked>Supprimer seulement le fournisseur <br /> <input type="radio" name="group" value="sup2">Supprimer le fournisseur avec ses produits<br /> <table border="2" bordercolor="" width="400"> <tr><th>Code</th><th>Nom</th><th>Action</th></tr> <?php $req=mysql_query("SELECT * FROM fournisseurs"); while($donnees=mysql_fetch_array($req)) { $code_frns=$donnees['code_frns']; print (" <tr> <td> <input type='text' name='code' value='".$code_frns."' size=4> </td> <td>$donnees[nom_frns]</td> <td> "); ?> <!-- ton lien devient ainsi: appel de la fonction en lui passant le code_frns --> [ <a href="javascript:appel_page('<?php echo $donnees['code_frns'];?>');" >Supprimer</a> ] </td> </tr> <?php } mysql_close(); ?> </table> </form> -
c'est vrai que IE n'est pas bavard en debuggae javascript si tu cliques sur l'erreur tu as une fenêtre qui te dis erreur à la ligne ...
sur Firefox il y a une console d'erreur javascript
il y avait juste une petite erreur à cette ligne
//boucle de recherche du bouton radio qui a été coché!
for (i=0, i<formulaire_suppr.group.length; i++) {
il faut ; à la place de , après i=0
un copier coller malheureux
//boucle de recherche du bouton radio qui a été coché! for (i=0; i<formulaire_suppr.group.length; i++) { -
$_code_frns=$_GET['code_frns'];
c'est çà qui marche pas, as tu pris le temps de tester ce que te renvoyait ta variable ??
voici ton code<input type='text' name='code' value='".$code_frns."' size=4>
il faut donc mettre$_code_frns=$_GET['code'];
-
merci pour votre réponse tt d'abord, mais moi aussi je mets $_GET['code']; au lieu de $_GET['code_frns']; c'est seulement erreur de frappe;
c'est pas la source de mon pb exactement; -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
normal que tu n'ai que le dernier, tous les liens provoquent le submit du formulaire complet et ce n'est que le dernier correspondant au name "code_frns" qui est pris en compte, il faut que tu fasses ton lien ainsi:
[ <a href="suppression_cli.php?code_frns=<?php echo $code_frns; ?>">Supprimer</a> ]
-
Wéééééééé, c'est correcte; très bien!
Merci bcp pour ce supper code.
c'est gentil de votre part :)