Problème de boucle [Résolu]

Signaler
-
 Mick -
Bonjour, j'ai un problème avec mon code php. Le but est de selectionné l'id d'un post en cliquant sur un bouton EDIT. Mais vu que c'est dans une boucle récupère les deux ID et je ne sais pas comment faire pour règlé ce bug le site au cas http://eagleeyespro.ddns.net. Merci.

<?php
$qi80 = $db->prepare("SELECT * FROM publication ORDER BY id DESC");
$qi80->execute();
while($all = $qi80->fetch()){
$idpp = $all['id'];
?>
<div id="onepost">

<h2>Nouveau post par: <?php echo $all['autor']; ?></h2>
<p><?php echo $all['autor']; ?></p>
<p>
<?php echo $all['post']; ?>
</p>
<p>Like: <?php echo $all['likes']; ?></p>
<?php
if($_SESSION['perm'] == '4'){
?>
<form method="post">
<button id="button" name="edit">Edit</button>
</form><?php

?>
<?php
}
?>
</div>
<?php
}
if(isset($_POST['edit'])){

echo $idpp;
}
?>

4 réponses

Bonjour,

Mets un input hidden avec un name de ton cru et pour valeur l'id de la publication dans ton form.
Il ne restera plus qu'à récupérer l'id de la publication lors du submit via $_POST.
Si c'est une page admin, ce serait peut-être mieux de passer ton form en get.
Messages postés
30284
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2020
3 012
Bonjour,

Pour commencer, à l'avenir, merci de poster ton code correctement en précisant, dans les balises de code, le langage concerné. Cela permet d'avoir la coloration syntaxique ainsi que l'indentation.
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ensuite, plusieurs possibilités.
Si tu veux rester avec un form ... l'input hidden est en effet la meilleur solution
<form method="post">
  <input type="hidden" name="id" value="<?php echo $idpp ?>">
  <button id="button" name="edit">Edit</button>
</form>


Mais si la page qui permet de faire l'édition se trouve sur un autre fichier php, dans ce cas, un simple lien suffit
<a href="./chemin/vers/ta/page/edit.php?id=<?php echo $idpp;?>">Editer</a>


Dans le premier cas, tu récupèreras la variable en POST
$id = !empty($_POST['id']) ? $_POST['id'] : NULL;

dans le second cas, en GET
$id = !empty($_GET['id']) ? $_GET['id'] : NULL;



Et vu que tu fais du PDO, je t'invite fortement à lire et à appliquer ceci dans ton code
https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

et faire un tour ici :
https://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Je ne comprend pas un input hidden ?

Je débute en PHP

c'est genre comme ça:
<input type="hidden" name"">
Merci de ta réponse claire. Je vais travaillé sur le sujet, merci bonne soirée.