Problème suppression ligne mysql/php
dallap
-
dallap -
dallap -
Bonjour,
J'ai un problème avec la suppression de ligne dans un tableau.
J'aimerais que l'on coche les checkboxs des lignes à supprimer (dans la page Recap.php) et qu'en cliquant sur un bouton cela envoie vers une page RecapSupp.php.
Voici mon code Recap.php :
Et le code de RecapSupp.php :
j'obtiens un message d'erreur :
Champ 'SW1' inconnu dans where clause
SW1 correspond a ce que j'ai entré en dernier dans la 2ème colonne (désignation)
je ne trouve pas la solution depuis plusieurs jours. Pourriez vous m'aider svp?
Merci beaucoup.
PS : je travaille sur phpmyadmin 3.1.1 en MySQL: 5.0.51a
J'ai un problème avec la suppression de ligne dans un tableau.
J'aimerais que l'on coche les checkboxs des lignes à supprimer (dans la page Recap.php) et qu'en cliquant sur un bouton cela envoie vers une page RecapSupp.php.
Voici mon code Recap.php :
//affichage de la dernière ligne entrée
<tr>
<td><?php echo $data3['ID']; ?></td>
<td><?php echo $data3['Designation']; ?></td>
<td><?php echo $data3['Reference']; ?></td>
<td><?php echo $data3['NumSerie']; ?></td>
<td><?php echo $data3['Version']; ?></td>
<td><?php echo $data3['NomTypeContrat']; ?></td>
<td><?php echo $data3['NumContrat']; ?></td>
<td><?php echo $data3['AddInstallation']; ?></td>
<td><?php echo $data3['AccesDistant']; ?></td>
<td><?php echo $data3['Contact']; ?></td>
<td><?php $i=0; echo "<input type=\"checkbox\" name=\"$i\" value=\"$data3[ID]\" />";?></td>
</tr>
//affichage des lignes précédements entrées
<?php $i=1;
while($data3 = mysql_fetch_assoc($sql3))
{
echo "<tr>
<td>$data3[ID]</td>
<td>$data3[Designation]</td>
<td>$data3[Reference]</td>
<td>$data3[NumSerie]</td>
<td>$data3[Version]</td>
<td>$data3[NomTypeContrat]</td>
<td>$data3[NumContrat]</td>
<td>$data3[AddInstallation]</td>
<td>$data3[AccesDistant]</td>
<td>$data3[Contact]</td>
<td><input type=\"checkbox\" name=\"$i\" value=\"$i\" /></td>
</tr>";
$i++;
}
?>
</table> <INPUT TYPE="button" name="Delete" onclick="javascript:envoie('RecapSupp.php')" value="delete">
Et le code de RecapSupp.php :
foreach($_POST as $key=>$i)
{
$query4 = "DELETE FROM materiel WHERE ID=$i";
mysql_query($query4) or die(mysql_error());
}
j'obtiens un message d'erreur :
Champ 'SW1' inconnu dans where clause
SW1 correspond a ce que j'ai entré en dernier dans la 2ème colonne (désignation)
je ne trouve pas la solution depuis plusieurs jours. Pourriez vous m'aider svp?
Merci beaucoup.
PS : je travaille sur phpmyadmin 3.1.1 en MySQL: 5.0.51a
A voir également:
- Problème suppression ligne mysql/php
- Forcer suppression fichier - Guide
- Partager photos en ligne - Guide
- Mètre en ligne - Guide
- Formulaire en ligne de meta - Guide
- Suppression compte gmail - Guide
11 réponses
ah il y avait un double post, l'autre a été supprimé, j'ai donc rajouté des ' ' à ID:
$query4 = "DELETE FROM materiel WHERE ID='$i'";
et j'ai changé :
<td><input type=\"checkbox\" name=\"$i\" value=\"$data3[ID]\" /></td>
au lieu de :
<td><input type=\"checkbox\" name=\"$i\" value=\"$i\" /></td>
mais il ne supprime pas les bonnes lignes dans la base de donnée. Pensez vous qu'il reconnaisse bien les cases cochées?
Merci de votre aide.
$query4 = "DELETE FROM materiel WHERE ID='$i'";
et j'ai changé :
<td><input type=\"checkbox\" name=\"$i\" value=\"$data3[ID]\" /></td>
au lieu de :
<td><input type=\"checkbox\" name=\"$i\" value=\"$i\" /></td>
mais il ne supprime pas les bonnes lignes dans la base de donnée. Pensez vous qu'il reconnaisse bien les cases cochées?
Merci de votre aide.
<INPUT TYPE="button" name="Delete" onclick="javascript:envoie('RecapSupp.php')" value="delete">Elle fait quoi cette fonction ?
Parce qu'à mon avis tu ne transmets rien par post...
heu en théorie elle transmet à la page recapSupp. Voici la fonction:
(dans ma page Recap.php j'ai aussi <form method="post" name="client"> )
<script language="javascript">
function envoie(adresse)
{
document.client.action = adresse;
document.client.submit();
}
</script>
(dans ma page Recap.php j'ai aussi <form method="post" name="client"> )
et comme ça:
<?php
$i=1;
while($data3 = mysql_fetch_assoc($sql3))
{
echo "<tr>
<td>$data3[ID]</td>
<td>$data3[Designation]</td>
<td>$data3[Reference]</td>
<td>$data3[NumSerie]</td>
<td>$data3[Version]</td>
<td>$data3[NomTypeContrat]</td>
<td>$data3[NumContrat]</td>
<td>$data3[AddInstallation]</td>
<td>$data3[AccesDistant]</td>
<td>$data3[Contact]</td>
<td><input type=\"checkbox\" name=\"case_delete[]\" value=\"$i\" /></td>
</tr>";
$i++;
}
?>
</table> <input type="submit" name="Delete" value="Delete">
Et le code de RecapSupp.php :
<?php
foreach($_POST['case_delete'] as $key=>$i)
{
$query4 = "DELETE FROM materiel WHERE ID=$i";
mysql_query($query4) or die(mysql_error());
}
?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Il n'accepte pas les [] dans le code (erreur syntax) et sans les [] j'ai
Notice: Undefined variable: case_delete in C:\Program Files\EasyPHP 3.0\www\UPNETWORKS\Recap.php on line 231
essayes:
<?php
if(sizeof($_POST['case_delete'])>0){
foreach($_POST['case_delete'] as $key=>$i)
{
$query4 = "DELETE FROM materiel WHERE ID=$i";
mysql_query($query4) or die(mysql_error());
}
}
?>
j'ai essayé de corrigé avec ce que tu m'a dis et ça donne ça:
Recap.php:
RecapSupp.php :
j'ai le message d'erreur :
meme en déclarant $case_delete[]=$_POST["case_delete[]"]; ca me met pareil.
Recap.php:
<form method="post" name="client" >
<?php $case_delete=array();
while($data3 = mysql_fetch_assoc($sql3))
{
echo "<tr>
<td>$data3[ID]</td>
<td>$data3[Designation]</td>
<td>$data3[Contact]</td>
<td><input type=\"checkbox\" name=\"$case_delete\[\]\" value=\"$data3[ID]\" /></td>
//je suis obligé de mettre $case_delete\[\]\ car si je met $case_delete[]\ il y a une erreur de syntaxe
</tr>";
}
?>
// si je mets la ligne suivante la page RecapSupp.php est bien chargée à l'appui sur le bouton
// j'ai ce type de ligne pour chaque bouton de ma page car si je mets un submit le lien n'est pas fait
<INPUT TYPE="button" name="Delete" onclick="javascript:envoie('RecapSupp.php')" value="delete">
//si je met celle qui suis c'est la page Recap.php qui est rechargée
<input type="submit" name="Delete" value="Delete">
RecapSupp.php :
if(sizeof($_POST['case_delete[]'])>0){
foreach($_POST['case_delete'] as $key=>$i)
{
$query4 = "DELETE FROM materiel WHERE ID=$i";
mysql_query($query4) or die(mysql_error());
}
}
j'ai le message d'erreur :
Notice: Undefined index: case_delete[] in C:\Program Files\EasyPHP 3.0\www\UPNETWORKS\RecapSupp.php on line 61
meme en déclarant $case_delete[]=$_POST["case_delete[]"]; ca me met pareil.
j'ai résolu le problème du bouton, il manquait:
mais j'ai toujours le:
Notice: Undefined index: case_delete in C:\Program Files\EasyPHP 3.0\www\UPNETWORKS\RecapSupp.php on line 61
Auriez vous une idée?
merci de votre patience
<form method="post" name="Delete" action="RecapSupp.php">
<?php $case_delete[]=array();
while($data3 = mysql_fetch_assoc($sql3))
{
echo "<tr>
<td>$data3[ID]</td>
<td>$data3[Designation]</td>
<td>$data3[Reference]</td>
<td>$data3[NumSerie]</td>
<td>$data3[Version]</td>
<td>$data3[NomTypeContrat]</td>
<td>$data3[NumContrat]</td>
<td>$data3[AddInstallation]</td>
<td>$data3[AccesDistant]</td>
<td>$data3[Contact]</td>
<td><input type=\"checkbox\" name=\"$case_delete\[\]\" value=\"$data3[ID]\" /></td>
</tr>";
}
?> <input type="submit" name="Delete" value="Delete">
mais j'ai toujours le:
Notice: Undefined index: case_delete in C:\Program Files\EasyPHP 3.0\www\UPNETWORKS\RecapSupp.php on line 61
Auriez vous une idée?
merci de votre patience
attention il ne faut pas:
<td><input type=\"checkbox\" name=\"$case_delete\[\]\"
mais
on ne donne pas à un input un array comme nom mais un nom avec des [] de façon à ce que toutes les cases cochées soient renvoyées dans un array dans le $_POST c'est pas pareil !
<td><input type=\"checkbox\" name=\"$case_delete\[\]\"
mais
<td><input type=\"checkbox\" name=\"case_delete[]\"
on ne donne pas à un input un array comme nom mais un nom avec des [] de façon à ce que toutes les cases cochées soient renvoyées dans un array dans le $_POST c'est pas pareil !
C'est parfait tout marche correctement.
Par contre j'ai du changé
<form method="post" name="Delete" action="RecapSupp.php">
en
<input type="submit" name="Delete" value="Delete">
et le bouton Delete en:
<INPUT TYPE="button" name="Delete" onclick="javascript:envoie('RecapSupp.php')" value="delete">
car j'ai des boutons pour le retour au menu, visualisation ... et avec un submit cela ne marchait pas
//Boutons pour les menus
Merci beaucoup a tous pour votre patience. Bonne soirée.
Par contre j'ai du changé
<form method="post" name="Delete" action="RecapSupp.php">
en
<input type="submit" name="Delete" value="Delete">
et le bouton Delete en:
<INPUT TYPE="button" name="Delete" onclick="javascript:envoie('RecapSupp.php')" value="delete">
car j'ai des boutons pour le retour au menu, visualisation ... et avec un submit cela ne marchait pas
//Boutons pour les menus
<tr>
<td align="center" width="300"><img src="visuclient.png" width="60" name="Visualiser Les Infos Client" value="Visualiser Les Infos Client" title="Visualiser Les Infos Client"></td>
<td align="center" width="300"><img src="home.png" width="60" name="Retour Sommaire" value="Retour Sommaire" title="Retour Sommaire"></td>
</tr>
<tr>
<td align="center" width="300"><INPUT TYPE="button" name="Visualiser Les Infos Client" onclick="javascript:envoie('ChoixVisuAdmin.php')" value="Visualiser Les Infos Client" title="Visualiser Les Infos Client"></td>
<td align="center" width="300"><INPUT TYPE="button" name="Retour Sommaire" onclick="javascript:envoie('IndexAdmin.php')" value="Retour Sommaire" title="Retour Sommaire"></td>
</tr>
Merci beaucoup a tous pour votre patience. Bonne soirée.