Page 1 sur 1

Formulaire de suppresion en php

Posté : 19 avr. 2016, 08:06
par BastouTatou
Bonjour, suite de mes aventures, je souhaite aujourd'hui réaliser un formulaire de suppression, en php (ce n'est pas mon choix, je dois le faire comme ca)

Voici ma première partie sur une première page

Code : Tout sélectionner

<?php /*<!--connexion à la base de donnée-->*/ $link = mysqli_connect("127.0.0.1","root","","h15478"); /*<!-- test de la connexion à la base de donnée -->*/ if ($link != FALSE) { } else { die("Impossible de se connecter : ".mysqli_error()); } echo "</br>"; /*<!-- création de la requete d'affichage -->*/ $requete1 = "SELECT annonces.titre AS Titre, annonces.texte AS Objet, annonces.dates AS Dates, annonces.visible AS Visible FROM annonces INNER JOIN categories ON annonces.IDcategorie=categories.IDcategorie ORDER BY annonces.dates DESC, annonces.titre ASC"; /*<!-- test de la requete -->*/ $result = mysqli_query($link,$requete1) or die(mysqli_error($link)); /*<!-- création de la requete de selection du numero d'identifiant -->*/ /*<!-- création du tableau-->*/ if ( mysqli_num_rows($result) != 0) { /* <!-- creation de l'en-tete du tableau --> */ echo"<form action='supprimer_annonces.php' method='POST'>"; echo "<table border=2px><tr>"; echo "<th>Titre</th>"; echo "<th>Objet</th>"; echo "<th>Date d'ajout</th>"; echo "<th>Visible</th>"; echo "<th>Supprimer</th>"; echo "</tr>"; while ($row = mysqli_fetch_assoc($result)) { /*<!-- création de la requete de selection du numero d'identifiant -->*/ $requete2 = "SELECT IDannonce FROM annonces"; echo "<tr>"; echo "<td>" . $row["Titre"] . "</td>"; echo "<td>" . $row["Objet"] . "</td>"; echo "<td>" . $row["Dates"] . "</td>"; echo "<td>" . $row["Visible"] . "</td>"; echo "<td>"; echo "<input type=checkbox name='ID[]' value='$requete2'>"; echo "</td>"; echo "</tr>"; } echo "</table>"; echo"<center><input type='submit' name='Supp' value='Valider la suppression'></center>"; echo"</form>"; } else { echo "La requête ne renvoie pas de résultat !"; } ?>

Le problème sur cette partie semble venir de l'ajout de la checkbox puis que le click sur le bouton "Valider la suppression" me renvoit $requete2 et non le résultat de $requete2

Code : Tout sélectionner

<?php if(isset($_POST['ID']) != FALSE){ foreach($_POST['ID'] as $IDchoisie); } else{ echo"<p>Pas de sélection</p>"; die; } echo $IDchoisie; $link = mysqli_connect("127.0.0.1","root","","h15478"); /* test de la connexion à la base de donnée */ if ($link != FALSE) { echo "Connexion r&eacute;ussie"; } else { die("Impossible de se connecter : ".mysqli_error()); } echo "</br>"; /* création de la requete */ $requete = "DELETE FROM annonces WHERE IDannonce='$IDchoisie'"; /* test de la requete */ $result = mysqli_query($link,$requete) or die(mysqli_error($link)); ?>
Dans cette deuxième partie, je ne suis pas sur du codage de mon foreach, si vous pouviez me dire si vous la trouvez correcte j'apprécierais beaucoup.

Merci d'avance aux lecteurs et aux aides

Cordialement

Re: Formulaire de suppresion en php

Posté : 19 avr. 2016, 08:34
par Spols
essaie comme sur les lignes précédentes
echo "<input type=checkbox name='ID[]' value='".$requete2."'>";
Pour ton foreach, il ne sert à rien sans instruction à l'intérieur.
Il te faut ouvrir une accolade et utiliser $IDchoisie

Re: Formulaire de suppresion en php

Posté : 19 avr. 2016, 08:56
par BastouTatou
Merci Spols, je viens d'essayer mais je n'ai aucune différence avec ce que j'avais fais avant

Je joins la capture du résultat
http://www.cjoint.com/c/FDtg3GI6brC

Re: Formulaire de suppresion en php

Posté : 24 avr. 2016, 12:42
par BastouTatou
Bonjour,

Personne n'a d'idée sur ce qui pourrait poser problème maintenant que la modification de Spols à été ajoutée et que le résultat est celui de mon message précédent?

Re: Formulaire de suppresion en php

Posté : 24 avr. 2016, 14:28
par or 1
$requete2 = "SELECT IDannonce FROM annonces";
echo "<input type=checkbox name='ID[]' value='$requete2'>";

dans le script de suppression, tu reçois donc comme valeur : SELECT IDannonce FROM annonces
la suppression va marcher si la table annonces a un champ qui a comme IDannonce : "SELECT IDannonce FROM annonces". si ce n'est pas le cas, alors pas de suppression.

Re: Formulaire de suppresion en php

Posté : 25 avr. 2016, 14:53
par BastouTatou
Merci or 1,

Comment dans ce cas, effectuer la requète, car au final ce que je voudrais c'est avoir comme valeur pour chaque checkbox, le résultat de la requète2.
J'ai essayé comme spols proposait

Code : Tout sélectionner

echo "<input type=checkbox name='ID[]' value='".$requete2."'>";

mais l'action effectuée me renvoit quand même SELECT IDannonce FROM annonces, et après vérification dans la base de donnée, la ligne n'a toujours pas été supprimée.

Re: Formulaire de suppresion en php

Posté : 25 avr. 2016, 17:13
par Ryle
Bonjour,

Ta variable $requete2 contient une chaîne de caractère correspondant à une requête SQL. Il te faudrait exécuter cette requête et en récupérer le résultat, mais en l'état, ça ne correspondra à rien...

Si tu veux l'id de l'annonce à supprimer, il te suffit de rajouter annonces.IDannonce dans le SELECT de ta requête 1, et d'aller lire le contenu de $row["IDannonce"] pour l'inclure dans ton formulaire, comme tu le fais pour les autres valeurs :)

Re: Formulaire de suppresion en php

Posté : 25 avr. 2016, 19:43
par BastouTatou
Merci beaucoup Ryle, ça fonctionne parfaitement (bon je suppose que tu t'en doutais mais quand même ;-))

C'est vrai que c'était la solution logique, j'aurai du y penser tout seul lol