Accepter ou refuser des commentaires

Résolu/Fermé
crvtp - 10 janv. 2011 à 17:43
 crvtp - 12 janv. 2011 à 20:51
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

magicshark Messages postés 399 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 6 mai 2014 13
10 janv. 2011 à 18:19
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
0
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...
0
magicshark Messages postés 399 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 6 mai 2014 13
10 janv. 2011 à 18:40
tu traite pas tes com 1 par 1 ?!
0
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.
0
magicshark Messages postés 399 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 6 mai 2014 13
10 janv. 2011 à 20:06
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
0
up =)
0
Webster95 Messages postés 553 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 9 juillet 2013 142
10 janv. 2011 à 20:43
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 =)

0
Webster95 Messages postés 553 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 9 juillet 2013 142
10 janv. 2011 à 20:44
j'avais mal regardé le code, tu as déja paramétré une colone "validé"...

Ben c'es terminé alors, affiche seulement les commentaires qui ont pour valeur validé de 1
0
Webster95 Messages postés 553 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 9 juillet 2013 142
10 janv. 2011 à 20:45
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.
0
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 ...
0
magicshark Messages postés 399 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 6 mai 2014 13
11 janv. 2011 à 12:40
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>
0
magicshark Messages postés 399 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 6 mai 2014 13
11 janv. 2011 à 12:42
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(...))
0