Accepter ou refuser des commentaires [Résolu/Fermé]

Signaler
-
 crvtp -
Bonjour,
Je suis actuellement en réalisation d'un site internet pour un projet. Je suis dans la réalisation de la base de donnée pour le livre d'or, où des visiteurs pourront laisser des commentaires. Le futur admin du site pourra accepter ou refuser les commentaires. Cependant j'ai un problème, lorsque j'accepte ou que je refuse un commentaire il me les accepte ou refuse tous. Je n'arrive pas a faire du cas par cas.

Voici mon code :
admin.php
<?php


$req="SELECT NOM, DATE, TEXTE FROM livre WHERE VALIDER='0' ORDER BY DATE DESC;";
$exec=mysql_query($req) or die("Erreur");



while ($enreg = mysql_fetch_array ($exec)) {
echo ''.$enreg["NOM"].''.$cpt.' '.$enreg["DATE"].' <br/>'.$enreg["TEXTE"].'<br/><br/>';
$id

?>
<form method="post" action="adminsqlA.php">
<p><input type="submit" value="VALIDER" /></p>
</form>
<form method="post" action="adminsqlR.php">
<p><input type="submit" value="REFUSER" /></p>
</form>

<?php
$cpt=$cpt+1;
}
?>


adminsqlA.php
<?php

include("en_tete.php");
include("menu.php");
include('connexion.php');
$cptA='0';


$req="UPDATE livre SET VALIDER='1'";
$exec=mysql_query($req) or die("Erreur");


?>
<div id="corps">
<h2>Votre commentaire est accepté</h2>
<a href='admin.php'>Vous voulez en vérifier d'autres ?</a>
</div>



adminsqlR.php

<?php

include("en_tete.php");
include("menu.php");
include('connexion.php');


$req="DELETE FROM livre WHERE VALIDER='0'";
$exec=mysql_query($req) or die("Erreur");


?>
<div id="corps">
<h2>Votre commentaire est refusé</h2>
<a href='admin.php'>Vous voulez en vérifier d'autres ?</a>
</div>

4 réponses

Messages postés
399
Date d'inscription
mardi 27 juillet 2010
Statut
Membre
Dernière intervention
6 mai 2014
15
Tu pas mettre un where ici :$req="UPDATE livre SET VALIDER='1'";
comme ici https://phpsources.net/tutoriel-delete.htm#part_2
et en where pourquoi pas mettre l'id par exemple :D
Non, mettre un WHERE avec la valeur de l'id ne fonctionnera pas, ou plutot ne fonctionnera que dans un seul cas. Je m'explique:
si je mets un where id=10;
alors je ne pourrai accepter ou refuser seulement le com' 10, lorsque je voudrais traiter le com' 11, cela ne fonctionnera plus...
Messages postés
399
Date d'inscription
mardi 27 juillet 2010
Statut
Membre
Dernière intervention
6 mai 2014
15
tu traite pas tes com 1 par 1 ?!
Oui, je veux traiter mes com un par un, je veux pouvoir traiter le 1er, le second etc... C'est pour cela que je ne peux pas mettre un WHERE id=1; car une fois que j'aurai traiter le 1er, je ne pourrai pas traiter le seconde puisque le WHERE sera tjs id=1 et mon commentaire aura id=2.
Messages postés
399
Date d'inscription
mardi 27 juillet 2010
Statut
Membre
Dernière intervention
6 mai 2014
15
euh as tu déjà entendu parler du php et de ses jolies variable :D quand tu fais ta requete pour afficher tes com recupere l'ID et apres tu t'en sert pour le mettre en value en tout cas recupere le pour le mettre dans tarequete
Messages postés
553
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
9 juillet 2013
129
Exemple:

1er commentaire = ID numéro 1
2eme commentaire = ID numéro 2

Si dans ta base de donnée, tu rajoute un colone "validé" avce pour valeur 0
Si on ajoute un commentaire, un 3eme ID se créer, avec une valeur "validé" 0

Si tu valide un commentaire, tu change la valeur de "validé" sur 1.

Pour afficher les commentaires, tu les affiches tous WHERE validé=1

Si on résumé, 0=non_validé
1=validé

Voila =)

Messages postés
553
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
9 juillet 2013
129
et pour l'administration, tu affiche au modérateur tous les commentaires qui ont pour valeur "validé" de 0
A chaque commentaire son bouton "Valider ce commentaire", qui transform le 0 en 1, et sera donc afficher sur le site.
Oui Webster95, le code que j'ai afficher fait précisément cela, sauf que au lieu de traiter les commentaires au cas par cas, cela va soit me valider tous les commentaires, soit tous me les supprimer.
Je pense que magicshark a raison, je dois utiliser une variable compteur pour pouvoir les traiter un par un, mais j'ai du mal à voir comment ...
Messages postés
399
Date d'inscription
mardi 27 juillet 2010
Statut
Membre
Dernière intervention
6 mai 2014
15
c'est pas exactement une variable compteur mais un bouton pour chaque c'est a mon gout le mieux je dirai meme mieu deux bouton un supprimer et un valider tu fais ça dans un tableau je vais te faire un exemple je traite pas l'affichage des donnees comme toi mais tu verra c'est pas trop compliqué.:
<table>
<?php 
$sql="select * from eleve"; //une table comme ça ELEVE(id,nom,prenom)
$query=mysql_query($sql);
while($ligne=mysql_fetch_object($query))
{
$id=$ligne->id;
$nom=$ligne->nom;
$prenom=$ligne->prenom;

echo" <form method='post' action='traitement.php'>
<tr><td>$nom</td><td>$prenom></tr>
<tr><td><input type='submit' value='OK' name='valide'></td><td><input type='submit' value='NON' name='suprimer'><input type='hidden' name='id' value='$id'></td></tr>
</form>";

}
?>
</table>
Messages postés
399
Date d'inscription
mardi 27 juillet 2010
Statut
Membre
Dernière intervention
6 mai 2014
15
le champs cacher hidden(attention je ne sais jamais combien il y a de d dedans) te sert a savoir l'id du com que tu as valider les champs name sur les boutons permettent de savoir sur quelle bouton a cliquer l'utilisateur a savoir OK ou SUPRIMER tu le vois avec un if(isset(...))
YEAH c'est bon ! ça fonctionne =) Merci beaucoup pour votre aide