Supprimer une ligne de la BD via un tableau php...

Résolu/Fermé
MrHip7 Messages postés 31 Date d'inscription jeudi 9 janvier 2014 Statut Membre Dernière intervention 6 mai 2015 - Modifié par MrHip7 le 28/04/2015 à 12:16
MrHip7 Messages postés 31 Date d'inscription jeudi 9 janvier 2014 Statut Membre Dernière intervention 6 mai 2015 - 28 avril 2015 à 13:52
Bonjour à tous!

Ce mardi, bien que ensoleillé apporte tout de même son lot d'insatisfaction personnelle! :)

Je m'explique:

J'ai un tableau dans mon Back-office avec une liste de QCM que je peux ajouter au fur et a mesure. Bon.

Le nom est dans la colonne de gauche et a droite, il y a un bouton editer et un bouton supprimer. Je me penche en premier lieu sur le supprimer:

Vous l'aurez compris, j'essaye de supprimer de la BDD le QCM associé à la ligne du supprimer dans le tableau...

J'ai fait ça, mais cela ne me fais rien du tout quand je clique sur supprimer: pourquoi? :)

<table>
  <tr>
   <th>Les QCM existants:</th>
   <th>Outils d'édition:</th>

  </tr>
 <?php
 while($donnees = mysqli_fetch_array($reponse))
 {
 ?>
  <tr>
   <th><?php echo $donnees['QCM_nom'];?></th>
   <th>
    <form action="backoffice.php" method="post" name="newqcm">
    <input type="submit" value="Editer" class="bouton" name="editqcm"/> - <input type="submit" value="Supprimer" class="bouton" name="suprqcm"/>
    </form>
   </th>
  </tr>
 <?php
  if(isset($_POST['suprqcm'])){
   $id = $donnees['QCM_id'];
   mysqli_query($base ,'DELETE * FROM QCM where QCM_id='.$id.'');
  }
 }
 ?>
</table>


Je vous remercie d'avance pour le temps que vous me consacrerez :)

greg

EDIT:

J'ai mis des, td, en effet, c'est moins crade...
A voir également:

1 réponse

jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
28 avril 2015 à 12:04
Bonjour,
Pour ce genre de chose... je préfères passer par de l'ajax.

par contre, pourquoi utilises tu des TH alors que tu es dans ton tableau (et non dans son en-tête). Il faudrait plutôt mettre des TD non ?

Et sinon.. tu dis que rien ne se passe .. c'est à dire ?
ça ne va pas sur ta page : backoffice.php ?
Et enfin.. tu pourrais, au lieu d'utiliser des <FORM> .. utiliser simplement des liens du genre :
<a href="backoffice.php?action=supprimer">Supprimer</a>  

et les variables GET.

0
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
28 avril 2015 à 12:07
Bonjour,
oui et préciser l'id du qcm à supprimer dans l'url
<a href="backoffice.php?action=supprimer&idqcm=<?php echo $idqcm ?>">Supprimer</a>

par exemple

Cordialement
0
MrHip7 Messages postés 31 Date d'inscription jeudi 9 janvier 2014 Statut Membre Dernière intervention 6 mai 2015
28 avril 2015 à 12:18
Salut vous deux! merci d'avoir rep'

Rien ne se passe -> le tableau est deja sur la page backoffice.php, lorsque je clic sur l'un des supprimer, cela actualise backoffice.php, rien de plus, pas de suppression, pas de message d'erreur...

Je vais essayer les href.. comment ca se passe avec les "action"?
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649 > MrHip7 Messages postés 31 Date d'inscription jeudi 9 janvier 2014 Statut Membre Dernière intervention 6 mai 2015
28 avril 2015 à 12:26
Et tu as essayé de faire des PRINT des variables POST et/ou GET ?
<?php
// le début de ta page :
print_r($_POST);
print_r($_GET);

N'as tu rien dedans ??


Et je viens de voir un truc faux dans ton code...
Mets ces lignes là au début de ta page... pas dans ta boucle !
 if(isset($_POST['suprqcm'])){
   $id = $_POST['QCM_id'];
   mysqli_query($base ,'DELETE * FROM QCM where QCM_id='.$id.'');
  }

=et ajoute, dans ta form un input hidden contenant l'id;
<form action="backoffice.php" method="post" name="newqcm">
  <input type="hidden" name="id" value="'.$donnees['QCM_id'] .'">
    <input type="submit" value="Editer" class="bouton" name="editqcm"/> - <input type="submit" value="Supprimer" class="bouton" name="suprqcm"/>
    </form>



NB : NE mets pas de balises PHP alors que tu es DEJA dans un code php !
0
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
Modifié par Thorak83 le 28/04/2015 à 12:28
au du code modifié je ferais ceci
<a href="backoffice.php?suprqcm=supprimer&idqcm=<?php echo $donnees['QCM_id']?>">Supprimer</a>

puis

if(isset($_GET['suprqcm'])){
   $id = $_GET['QCM_id'];
   mysqli_query($base ,'DELETE * FROM QCM where QCM_id='.$id.'');
  }
0
MrHip7 Messages postés 31 Date d'inscription jeudi 9 janvier 2014 Statut Membre Dernière intervention 6 mai 2015
28 avril 2015 à 13:52
<?php
if(isset($_POST['suprqcm']) && isset($_POST['qcmid'])) // rajoute une condition
{
	$id = $_POST['qcmid']; // Change la source de l'info
	mysqli_query($base ,'DELETE FROM QCM WHERE QCM_id='.$id.' LIMIT 1'); // Corrige la requête. - Le limite 1, c'est juste par sécurité.
}
 
$reponse = mysqli_query($base ,"SELECT QCM_id,QCM_nom FROM QCM");
?>     
<table>
        <tr>
            <th>Les QCM existants:</th>
            <th>Outils d'édition:</th>

        </tr>
    <?php
    while($donnees = mysqli_fetch_array($reponse)){
    ?>
        <tr>
            <td><?php echo $donnees['QCM_nom'];?></td>
            <td>
                <form action="backoffice.php" method="post" name="ediqcm">
				<input type="hidden" name="qcmid" value="<?php echo $donnees['QCM_id']; ?>" /> <!-- On rajoute une valeur cachée -->
                <input type="submit" value="Editer" class="bouton" name="editqcm"/> - <input type="submit" value="Supprimer" class="bouton" name="suprqcm"/>
                </form>
            </td>
        </tr>
    <?php
    } // Fin de while
    ?>
</table>


Et cela fonctionne, merci à vous
0