Page 1 sur 1

supprime tous les id identiques dans differents tableaux

Posté : 07 août 2011, 02:01
par celine34
Bonsoir, bonjour.....
j'ai divers formulaires sur mon site.
J'ai créé une zone d'administration qui se présente sous forme de tableaux pour effacer certains formulaires.
chaque tableau récupère les données dans la bdd et en fin de chaque ligne, une checkbox. Une fois celle ci cochée, j'ai un bouton supprimer.

Voici le code:
$db = mysql_connect($host, $login, $password) or die(showError('1', mysql_error()));
mysql_select_db($base,$db) or die(showError('2', mysql_error()));
/* vide le formulaire */
foreach ($delete as $valeur){
$sql="DELETE FROM formulaire where id='$valeur'";
$req= mysql_query($sql);
}
header("Location: index.php");

/* vide les propositions */
foreach ($delete as $valeur){
$sql="DELETE FROM proposition_dossier where id='$valeur'";
$req= mysql_query($sql);
}
header("Location: index.php");

/* vide le suivi */
foreach ($delete as $valeur){
$sql="DELETE FROM proposition_dossier_suite where id='$valeur'";
$req= mysql_query($sql);
}
 
header("Location: index.php");

/* vide le sondage */
foreach ($delete as $valeur){
$sql="DELETE FROM pvote where id='$valeur'";
$req= mysql_query($sql);
}
 
header("Location: index.php");
}
Le problème, c'est que si je supprime une ligne dans un des tableaux qui porte le même ID qu'une ligne dans un des tableaux suivant, ça le supprime aussi....
Que faire? :P

Re: supprime tous les id identiques dans differents tableaux

Posté : 07 août 2011, 02:25
par sam12
Il me vient une question basique. As-tu donné un "name" différent à chaque submit? Apparemment je ne vois pas de if isset $_POST etc...

Re: supprime tous les id identiques dans differents tableaux

Posté : 07 août 2011, 02:37
par celine34
Bonsoir,
Tous les "name" son identiques
<input type='checkbox' name='delete[]' value='".$donnees['id']."' />
Pour ce qui est de if isset $_POST etc... je n'avais pas inséré tout le code. Le voici intégral:
<?php 
require('../connexion.php');
$delete = isset($_POST['delete']) ? $_POST['delete'] : array();
if (sizeof($delete)==0){
echo 'Il n\'y a pas d\'enregistrements';
exit;}
else{
 
$db = mysql_connect($host, $login, $password) or die(showError('1', mysql_error()));
mysql_select_db($base,$db) or die(showError('2', mysql_error()));
/* vide le formulaire */
foreach ($delete as $valeur){
$sql="DELETE FROM formulaire where id='$valeur'";
$req= mysql_query($sql);
}
header("Location: index.php");

/* vide les propositions */
foreach ($delete as $valeur){
$sql="DELETE FROM proposition_dossier where id='$valeur'";
$req= mysql_query($sql);
}
header("Location: index.php");

/* vide le suivi */
foreach ($delete as $valeur){
$sql="DELETE FROM proposition_dossier_suite where id='$valeur'";
$req= mysql_query($sql);
}
 
header("Location: index.php");

/* vide le sondage */
foreach ($delete as $valeur){
$sql="DELETE FROM pvote where id='$valeur'";
$req= mysql_query($sql);
}
 
header("Location: index.php");
}
?>
Une idée?

Re: supprime tous les id identiques dans differents tableaux

Posté : 07 août 2011, 02:48
par sam12
C'est bien ce que je pensais.
Si tu utilises les mêmes "name", comment veux-tu que le script fasse la différence?
=> Il supprime toutes tes lignes ayant la même id sur tous tes tableaux. Logique d'un autre coté ;)

Il faut donc donner un name different pour chaque tableau et bien sur faire 1 isset d'un name, indiquer son traitement et passer à un autre isset du name suivant.

Donc
if (isset($_POST['delete1'])){instruction }
if (isset($_POST['delete2'])){instruction }
etc... ;)

Re: supprime tous les id identiques dans differents tableaux

Posté : 07 août 2011, 17:16
par celine34
merci sam12
Ca fonctionne maintenant...
Bonne journée à toi et aux autres :P :P

Re: supprime tous les id identiques dans differents tableaux

Posté : 07 août 2011, 19:48
par sam12
Pas de soucis ;)
Bonne journée à toi aussi.