Système de commentaires

Résolu
John4834 Messages postés 94 Date d'inscription   Statut Membre Dernière intervention   -  
John4834 Messages postés 94 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
voila je voudrais insérer une zone dans laquelle les visiteurs de mon site pourraient laisser leurs commentaires.
je vous explique un peu: sur mon site on peut retrouver les valeurs de 265 actions!

Il s'agit d'un bête système en php:

pour la page de l'action AXA par exemple, l'adresse est la suivante: ?page=action&action=AXA (CS)
pour la page FORTIS: ?page=action&action=FORTIS (FORB)
...

J'aimerais faire en sorte que chaque utilisateur puisse laisser son commentaire et que ceux-ci soient stockés dans une base de donnée, donc l'id du com sera, je pense, lié avec l'id de l'action!

Avez-vous une idée de comment je pourrais faire cela?

Merci,

John

28 réponses

John4834 Messages postés 94 Date d'inscription   Statut Membre Dernière intervention   4
 
graffix: Fatal error: Call to a member function prepare() on a non-object on line 3

avion-f16: c'est bien le problème, il ne me signifie aucune erreur. Ca se passe exactement comme si le script avait fonctionné, mais il n'y a rien d'enregistré dans la table.
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
PDO n'est pas très bavare, essaye en affichant proprement les erreurs avec la structure "try { .... } catch() { ... }"
try {
	$sql = 'INSERT INTO `comment` SET '.
		'pseudo = :pseudo, '.
		'comment = :comment, '.
		'action_id = :action_id, '.
		'date = :date';

	$requete = $bdd->prepare($sql);
	$requete->execute(array(
		':pseudo' => $pseudo,
		':comment' => $comment,
		':action_id' => $action_id,
		':date' => $date
	));
} catch(PDOException $e) {
	echo 'Erreur N°'.$e->getCode().'<br/>'.$e->getMessage();
}
header('Location: ' . $_SERVER['HTTP_REFERER']);;
0
John4834 Messages postés 94 Date d'inscription   Statut Membre Dernière intervention   4
 
Un grand merci :D
C'est nickel!

Merci à vous pour votre aide :)
0
John4834 Messages postés 94 Date d'inscription   Statut Membre Dernière intervention   4
 
Me revoila :s

Voila j'ai essayer de faire l'affiche avec ec qui avait été dit tout au début de ce topic, mais cela ne fonctionnait pas; j'ai donc essayé ceci:

<?php //ici j'affiche les commentaires, ou du moins, j'essaye de les afficher :D
$sql="SELECT * FROM comment WHERE action_id=$action_id";
$req = mysql_query($sql) or die ('Erreur SGL ! <br />'.$sql.'<br />'.mysql_error());
while ($data=mysql_fetch_assoc($req);){
echo $data["pseudo"];
echo <p>{$data["comment"]} </p>;
}
?>


Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
graffx Messages postés 6506 Date d'inscription   Statut Contributeur Dernière intervention   1 975
 
enleve le ;

$req = mysql_query($sql) or die ('Erreur SGL ! <br />'.$sql.'<br />'.mysql_error());
0
John4834 Messages postés 94 Date d'inscription   Statut Membre Dernière intervention   4
 
Ca ne fonctionne pas non plus, alors j'ai essayé çà:

<?php //ici j'affiche les commentaires, ou du moins, j'essaye de les afficher :D
$bdd->query('SELECT * FROM comment WHERE action_id= '.$bdd->quote($action_id));
while($donnees = $requete->fetch(PDO::FETCH_OBJ)
{
echo $donnees->pseudo;
echo '<p>'.$donnees->comment.'</p>';
}
?>

Mais pareil, ca ne va pas.
0
John4834 Messages postés 94 Date d'inscription   Statut Membre Dernière intervention   4
 
$bdd->query('SELECT * FROM comment WHERE action_id= '.$bdd->quote($action_id));
while($donnees = $requete->fetch(PDO::FETCH_OBJ))
{
echo $donnees->pseudo;
echo '<p>'.$donnees->comment.'</p>';
}

Voila ca ca marche, du moins cela s'exécute mais il ne m'affiche rien au final.
0
John4834 Messages postés 94 Date d'inscription   Statut Membre Dernière intervention   4
 
<?php
try
{
$bdd->query('SELECT * FROM comment WHERE action_id= '.$bdd->quote($action_id));
while($donnees = $requete->fetch(PDO::FETCH_OBJ))
{
echo $donnees->pseudo;
echo '<p>'.$donnees->comment.'</p>';
}

} catch(PDOException $e)
{
echo 'Erreur N°'.$e->getCode().'<br/>'.$e->getMessage();
}


?>

ai essayé avec try et il ne me renvoi aucune erreur non plus...

Quelqu'un a une idée?
0