PHP\MySQL - Suppression groupée

Fermé
Sakkarah - 8 janv. 2009 à 08:12
 Sakkarah - 8 janv. 2009 à 09:56
Bonjour,

Ces derniers jours je manque un peu de logique.. Faute aux vacances qui endolorissent notre petit cerveau :o) Donc voici mon problème :

J'ai une liste d'annonces (résultats de ma BDD) auxquelles j'ai ajouté une case à cocher. Je voudrais que l'on puisse, par exemple, toutes les séléctionner et ensuite cliquer sur "Séléction : Supprimer" donc j'ai mis un input comme il se devait :

<input type="checkbox" id="case[]" name="case[]" value="<?php echo $resultat->ann_id; ?>"/>

Mais je n'arrive pas à lui donner le n° de la case, il me prend toujours le dernier, bon là j'ai enlevé mes essais pour être plus claire :

$retour = 'SELECT ann_id FROM annonces WHERE ann_id=\''. $_POST['case'] .'\'';
$mysql = new mysql($retour);

while($resultat = mysql_fetch_object($mysql->result))
{
if($_POST['case'] == $resultat->ann_id)
mysql_query('DELETE FROM annonces WHERE ann_id=\''. $_POST['case'][$i] .'\'');

$i++;
}
// On défini quel sera le message pour l'afficher ensuite
$message = $msg_suppression;

Est-ce que quelqu'un aurait l'amabilité de m'éclairer ? Je vous en serais très reconnaissante :o)
A voir également:

2 réponses

Bonjour

Effectivement, tu manques de logique...

Premièrement, d'après ton formulaire, case désigne un tableau. Donc $_POST['case'] devient 'Array' dans ta requête. As-tu pensé à faire un echo $retour; pour vérifier ce que tu demandais effectivement à mysql ?
Deuxièmement, à quoi sert le test if($_POST['case'] == $resultat->ann_id alors que tu as une clause WHERE ann_id=\''. $_POST['case'] .'\''; dans ta requête ?

ET que signifie je n'arrive pas à lui donner le n° de la case ? Où voudrais-tu voir ce numéro ?
0
Non mais je me suis emmêlé les pinceaux, en fait en me relisant je me demande où j'étais :o) Il y a des jours comme ça ! Donc voici ma solution :

<input type="checkbox" id="case[]" name="case[]" value="<?php echo $resultat->ann_id; ?>"/>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

if(isset($_POST['suppression']) && $_SESSION['rang'] == 1)
{
$tab_cases = $_REQUEST['case'];

if (!is_array($tab_cases))
$tab_cases = array(0=>$tab_cases);

foreach ($tab_cases as $k => $v)
mysql_query("DELETE FROM annonces WHERE ann_id='$v'");
}
0