PHP\MySQL - Suppression groupée
                                    
                        Sakkarah                    
                                    -
                                     
Sakkarah -
        Sakkarah -
        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)
                
            
                
    
    
    
        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:         
- PHP\MySQL - Suppression groupée
- Forcer suppression fichier - Guide
- Easy php - Télécharger - Divers Web & Internet
- Suppression compte gmail - Guide
- Mysql community server - Télécharger - Bases de données
- Suppression page word - Guide
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 ?
    
                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 ?
                        
                    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'");
}
    
                <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'");
}
