Bonjour à tous ,

J'ai un petit soucis concernant un bouton supprimer quand je clique sur le bouton supprimer sa me vide entierement ma base alors que j'ai bien indiqué une condition , au début je pensais que c'est ma condition qui posé probléme car meme si cela ne vidait pas entierement ma table , la valeur titre aurait surement pour valeur celle du derniere tour de boucle si je me trompe pas ? mais là meme dans ce cas , sa me vide completement table ce qui est bizarre , si quelqu'un pourrait m'expliquer comment je dois m'y prendre pour faire fonctionner ce bouton sa serait vraiment sympa .

à mon avis je dois m'y prendre mal au concernant ce bouton car je débute et j'ai un peu mal encore avec php. , voici mon code :

<table border="1">
        <tr>
            <td>Titre</td>
            <td>Date Debut</td>
            <td>Date Fin</td>
            <td>Supprimer</td>
        </tr>
        <?php foreach($categories as $category):
            $titre = $category['TitreInformation'] ;
            $dateDebut = $category['DateDebutParutionInfo'];
            $dateFin = $category['TitreInformation']
        ?>
        <tr>
            <td><?= $titre ?></td>
            <td><?= $dateDebut?></td>
            <td><?= $dateFin ?></td>
            <td>
                <form method="post" action="">
                    <input type="submit" name="delete" value="Supprimer">
                    <?php 
                        $delete = $db->prepare("DELETE FROM t_informations WHERE TitreInformation = :titre ");
                        $delete->execute(array(':titre'=>$titre));

                        ?> 
                </form>

            </td>
        </tr>

        <?php endforeach;?>

</table>

Merci d'avance à tous

8 réponses


Évidemment, tu as mis ta requête SQL de suppression dans ton foreach... Du coup à chaque tour de boucle tu exécute ton DELETE.

seb2913
Auteur

D'accord mais sachant que le bouton supprimer doit se répéter sur chaque ligne du coup je mets mon form dans le foreach , comment je peux faire appel de la requete sans supprimer tout ? car si je mets la requete dans un fichier séparé que je fais appel de ce fichier dans actions ma variable $titre sera undefine donc c'est là que je bloque ... Enfin c'est un peu confus pour moi , comment je dois m'y prendre ?

Il te faut récupérer la valeur du titre lorsque tu submit ton form. Ce que je te conseille c'est de prendre 2-3h et de faire la formation sur la POO en PHP dans la catégorie Formations de ce site ;)

Tu mets le code dans un autre fichier, et tu passes le titre en GET ou POST à cette page.

seb2913
Auteur

D'accord , c'est vrai que c'est pas trés propre comme j'ai fais en tout cas merci pour ton aide , je vais essayer ta solution dans la journée et je te donnerai un retour

seb2913
Auteur

Tu dis aussi que l'endroit n'a pas d'importance mais si je clique sur supprimer comment le code correspondant à ce bouton va s'executer ??

j'ai un peu mal avec le foreach car je vois pas ou placer le code suppression ailleur quel dans le form ou sinon je sais pas comment faire l'appel mais je vais lire la formation que tu viens me dire pour mieux comprendre mais pour le bouton j'ai vraiment du mal car avec l'id comme tu me dis j'ai essayé justement mais vu que c'est dans le foreach sa supprime tout et je comprends tout à fait pourquoi mais je vois pas ou placé ce code ^^ sachant que le bouton doit se répété et que la requete ne doit pas etre dans le foreach , c'est la que je bloque

seb2913
Auteur

Ok je vais regarder , merci encore

Effectivement @mastertaskone, ce tuto sera plus adapté s'il est débutant ;)