Pb de suppression de la BD php/mysql

Résolu/Fermé
amine_marc Messages postés 256 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 11 avril 2016 - 18 août 2010 à 17:45
amine_marc Messages postés 256 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 11 avril 2016 - 19 août 2010 à 18:13
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();
?>

---------------------------------------------------------------------------------------------------------
A voir également:

6 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 août 2010 à 16:08
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>
1
amine_marc Messages postés 256 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 11 avril 2016 2
19 août 2010 à 17:27
merci bcp Alain_42 pour ce vos efforts, mais malheureusement aucun effet après un clic sur [supprimer] sauf une erreur javascript parait sur la barre d'état du navigateur (IEx).
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 août 2010 à 17:44
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++) {
1
maka54 Messages postés 698 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
18 août 2010 à 18:02
$_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']; 
0
amine_marc Messages postés 256 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 11 avril 2016 2
18 août 2010 à 19:24
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;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
18 août 2010 à 21:56
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> ]
0
amine_marc Messages postés 256 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 11 avril 2016 2
19 août 2010 à 02:20
et comment savoir quel bouton radio on coche exactement dans ce cas?!
0
amine_marc Messages postés 256 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 11 avril 2016 2
19 août 2010 à 18:13
Wéééééééé, c'est correcte; très bien!
Merci bcp pour ce supper code.
c'est gentil de votre part :)
0