Page 1 sur 1

Submit ID.

Posté : 18 mai 2014, 19:18
par JeanDubois
Bonjour,
j'ai un système d'articles avec des commentaires, je voudrais mettre un système de j'aime.
J'utilise le code php suivant:
if(isset($_POST['voter'])) {
	
		mysql_query("UPDATE articles SET votes = votes + 1 WHERE id = '".$id."'");
	
	}
Le "id" doit être l'id de l'article, mais comment envoyer cet id depuis le submit ?
Mon code pour afficher l'id est :
<?php echo $a['id']; ?>
Merci de votre aide.

Re: Submit ID.

Posté : 18 mai 2014, 19:35
par moogli
Salut,

Il faut l'ajouter dans un champs de type hidden.

Attention dans ce cas il te faut un formulaire par commentaire (donc form et /form).


@+

Re: Submit ID.

Posté : 18 mai 2014, 19:44
par JeanDubois
Merci de ta réponse, mon bouton j'aime donne actuellement ceci :
<form action="" method="post">
<input hidden="<?php echo $a['id']; ?>" type="submit"></a></form>
Pour définir le
WHERE id = '".$id."'");
en fin de reqpete sql, je dois mettre
$id = Securise($_POST['id']);
ou autre chose en début de code php ?

Re: Submit ID.

Posté : 18 mai 2014, 19:49
par moogli
Un input de type hidden http://www.w3schools.com/tags/att_input_type.asp
En plus du submit. (Tu as un exemple complet sur le lien).

@+

Re: [RESOLU] Submit ID.

Posté : 18 mai 2014, 19:53
par JeanDubois
Merci.

Re: [RESOLU] Submit ID.

Posté : 18 mai 2014, 19:56
par moogli
De rien

@+

Re: Submit ID.

Posté : 19 mai 2014, 17:20
par JeanDubois
Cela ne fonctionne pas, en gros je dois récupérer l'id de l'article dans mon
if(isset($_POST['voter'])) {

}

Re: Submit ID.

Posté : 19 mai 2014, 17:30
par xTG
Cela ne fonctionne pas, en gros je dois récupérer l'id de l'article dans mon
if(isset($_POST['voter'])) {

}
Montres nous ton code.
Mais à priori tu avais compris la manipulation pour transmettre l'id, donc tu dois juste avoir un petit souci quelque part.

Re: Submit ID.

Posté : 19 mai 2014, 17:33
par JeanDubois
$sql = mysql_query("SELECT * FROM couples ORDER BY votes DESC LIMIT 20"); 
while($a = mysql_fetch_array($sql)) { 

if(isset($_POST['voter'])) {
	
		mysql_query("UPDATE couples SET votes = votes + 1 WHERE id = '".$a['id']."'");
	
	}
Le bouton voter :
<center><input type="submit" name="voter" value="VOTER!" /></center>
Ce code fait monter tout les votes au lieu de celui avec l'id concernée.

Re: Submit ID.

Posté : 19 mai 2014, 18:40
par xTG
En effet, car c'est ce que tu lui demandes...
// récupérer 20 enregistrements en les classant par votes descendant (les 20 plus gros votes donc)
$sql = mysql_query("SELECT * FROM couples ORDER BY votes DESC LIMIT 20");
// itérer sur chaque vote
while($a = mysql_fetch_array($sql)) {

if(isset($_POST['voter'])) {
       // pour chaque vote incrémenter le nombre de vote
                mysql_query("UPDATE couples SET votes = votes + 1 WHERE id = '".$a['id']."'");
       
        }
Il faut comme on te l'a indiqué plus haut ajouter un champs caché dans ton formulaire et y insérer l'id du vote.

Re: Submit ID.

Posté : 19 mai 2014, 20:44
par JeanDubois
Même en lisant la documentation, je ne vois aucun exemple ou l'on peut insérer l'id dans le submit.

Re: Submit ID.

Posté : 19 mai 2014, 20:47
par JeanDubois
Hum, j'ai trouvé : http://fr.openclassrooms.com/forum/suje ... 3pRe3YTX-Y.
Merci de votre aide, bonne fin de journée, je passe le sujet en résolu.

Re: [RESOLU] Submit ID.

Posté : 20 mai 2014, 07:34
par xTG
Euh... On t'a jamais dit qu'il fallait récupérer l'id du bouton...
Mais l'id du vote !
Alors à moins que ton submit prenne comme id celui du vote mais ce n'est pas très conseillé car en HTML5 l'id peut être interprété comme le name.
<input type="hidden" name="id_vote" value="<?php echo $id_vote; ?>" />
<input type="submit" ...