Requete delete ne fonctionne pas...

Fermé
Jeremy - Modifié par Jeremy le 11/06/2010 à 11:03
 Jeremy - 11 juin 2010 à 12:16
Bonjour,

Voilà, je vais vous exposer mon probleme ! Jen'arrive pas a comprendre pourquoi la ligne de tableau ne veut pas se supprimer. Pourtant le code que j'ai ultilisé marche pour un test que j'ai éffectué ci-dessous :

if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
{
// Alors on supprime la news correspondante
// On protège la variable "id_news" pour éviter une faille SQL

mysql_query('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\'');
var_dump($_GET);
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Date</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
{
?>
<tr>
<td><?php echo '<a href="rediger_news.php?modifier_news=">'; ?>Modifier</a></td>
<td><?php echo '<a href="liste_news.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
</tr>
<?php
} // Fin de la boucle qui liste les news
?>
</table>
<form action="index.php" method="post">
<center><input type="submit" value="retour index" /></center>
</form>
</body>
</html>

Maintenant je vais vous exposé le code sur lequel je suis en train de travailler .


if (isset($_GET['n'])) // Si on demande de supprimer une fsq
{
// Alors on supprime la fsq correspondante
// On protège la variable "fsq_id" pour éviter une faille SQL
$_GET['n'] = addslashes($_GET['n']);
mysql_query('DELETE FROM fsq WHERE fsq_id=\'' . $_GET['n'] . '\'');

}
echo " <table >
<tr>
<td colspan='4'><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>$titrecentre</span> </td>
</tr>
<tr>

<td> </td>
</tr>
<tr >
<td> </td>
<td class='entete'>Fiche N°</td>
<td class='entete'>Date échéance</td>
<td class='entete'>Origine</td>
<td class='entete'>Pilote</td>
<td class='entete'>reponsable PA</td>
<td></td>
</tr> ";
while ($row = mysql_fetch_assoc($result) )
{
//print_r($row);
echo "<form name='fsq' action='".$action."' method='get' enctype='multipart/form-data' >";
echo"<tr align='left'>";
echo "<td><input type='hidden' name = 'ed_id' value ='".$row['fsq_id']."' /> <input type='hidden' name = 'centre' value ='".$centre."' /><input type='hidden' name = 'chemin' value ='".$chemin."' /><input type='hidden' name = 'titrepage' value ='".$titrepage." N° ".$row['fsq_id']."' /></td>";
echo "<td class='data'>".$row['fsq_id']."</td>";

echo "<td class='data'>".$row['fsq_date_dd']."</td>";
//echo "<td class='data'>".$row['fsq_nom']."</td>";

echo "<td class='data'>".$row['fsq_origine']."</td>";

echo "<td class='data'>".$row['fsq_pilote']."</td>";
if ($row['fsq_date_fin_prev'] == '0000-00-00' ) {echo "<td class='data'> </td>"; } else {echo "<td class='data'>".$row['fsq_date_fin_prev']."</td>"; }
echo "<td class='data'>".$row['fsq_resp_meo']."</td>";
echo "<td class='data'>".$row['fsq_date_fin_eval']."</td>";
//if ($row['fsq_date_fin_eval'] == '0000-00-00' ) {echo "<td class='data'> </td>"; } else {echo "<td class='data'>".$row['fsq_date_fin_eval']."</td>"; }
echo "<td style='padding-left:6px'><input type='image' src='images/folder_explore.jpg' name='Visualiser' /></td>
</form> ";

?>

<td><?php echo '<a href="AccueilPilote.php?centre=include/res_filtre_multi.php&n' . $row['fsq_id'] . '">'; ?>Supprimer</a></td>// je suis obligé de mettre le lien en dur dû a l'include 'centre'
<?php
}
echo "</table>"; }
else
{
echo "
<table><tr><td style='padding:30px'><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'> Actuellement, aucune fiche ne correspond à ce critère</span>
</td></tr></table>
";
}
?>

Contrairement au code précedent, quand je clique sur le lien supprimer, rien ne se passe à par un semblant de rafraîchissement de la page...

J'espere que votre aide me sera tres utile!
Merci d'avance ! Jeremy

2 réponses

xMiLeY Messages postés 68 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 15 juin 2010 7
11 juin 2010 à 12:01
AccueilPilote.php?centre=include/res_filtre_multi.php&n".$row['fsq_id']."'


Imaginons que ca variable vaut 1, ca nous donne :

AccueilPilote.php?centre=include/res_filtre_multi.php&n1

Je pense pas que cette syntaxe de lien soit correcte...
0
Salut à vous !
Merci de l'attention que tu porte sur mon problème.
Effectivement, si je clique sur le bouton supprimer de la 1ere ligne du tableau la page se rafraichie et m'affiche ceci : AccueilPilote.phpcentre=include/res_filtre_multi.php&n5 (bon ici la variable faut 5 car ma 1ere ligne commence par 5 ^^' )

de même si je clique sur la ligne suivante du tableau sa m'affiche la page :http://localhost/qualite_org/AccueilPilote.php?centre=include/res_filtre_multi.php&n6

Jusqu'a la pas de souci ! Mais le probleme c'est qu'il ne supprime pas la ligne contrairement au test que j'ai pu faire auparavant. J'ai aussi pensé que cela venais du lien mais non... Si , par exemple je transforme : AccueilPilote.php?centre=include/res_filtre_multi.php&n".$row['fsq_id']."'
EN : AccueilPilote.php?/res_filtre_multi.php&n".$row['fsq_id']."' il m'affiche qu'il ne trouve pas le chemin, quand je clique sur supprimer...
Warning include()(fonction include): failed opening "fo inclusion (include_path..etc)
c'est donc pour sa que j'ai mi le lienj en dur ^^('
0