[PHP] Module commentaire different sur chaque

Fermé
Zoo - 15 juil. 2009 à 19:10
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 - 7 août 2009 à 15:01
Bonjour,
J'ai reussit a cree un module de commentaire grace au tuto du SDZ. (https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/914663-tp-un-minichat#ss_part_1)

Donc pour l'instant j'ai la meme chose que sur le SDZ mais j'aimerais que le module de commentaire ne soit pas le meme sur toute les pages .

Mon site est une galerie d'image j'ai la page galerie.php lorsque l'on clique sur une des images on est alors redirigé vers une page ou l'image est en grand (image.php)
<?php
$reponse = mysql_query("SELECT * FROM images WHERE id='".$_GET['var']."'"); // Requête SQL
$donnees = mysql_fetch_array($reponse)
 ?>

<?php echo stripslashes($donnees['imageGRAND']); ?>
 <?php   }   ?>


C'est donc sur cette page image.php que j'aimerais que le module de commentaire soit différent pour chaque image (et donc pour chaque id)

Merci de m'aider a trouvé une solution a mon problème.
A voir également:

20 réponses

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
7 août 2009 à 13:10
Essaye avec ça :
mysql_query('INSERT INTO minichat VALUES("", "'.$pseudo.'", "'.$message.'", "'.$_GET['var'].'")');
1
UP ?
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
17 juil. 2009 à 13:15
Ajoute un champs "image_id".
Ensuite, lors de la requête, mets : "WHERE image_id = '.$_GET['id'] ;
Et dans l'INSERT, n'oublie pas d'ajouter l'id de l'image.
0
salut,
Tu veut que je rajoute un champs "image_id" dans ma table minichat avec phpmyadmin ? et de quel type doit etre ce champ ( text / INT ... ) ?
ou alors j'ai pas bien compris ^^ ... pourrai tu développé ,je ne suis pas très doué...

Merci beaucoup pour ton aide
0

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

Posez votre question
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
17 juil. 2009 à 14:25
Oui, ce champs doit être ajouté à la table minichat.
Le champs doit être du même type que 'id' sur la table de tes images.
0
bah, j'ai deja un champ id dans ma table minichat ... , et apparemment là, phpmyadmin me dit que je ne peut pas avoir 2 champs en "Auto increment " donc je ne peut pas créé image_id ...

Qu'es-ce que je doit faire ? Oo
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
17 juil. 2009 à 16:20
image_id ne doit être du même type que 'id' dans la table des images mais pas en AI
0
J'ai créé image_id, et j'ai mis dans la requette :

// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM minichat WHERE image_id = '.$_GET['id'] ORDER BY ID DESC LIMIT 0,10");


donc maintenant je crois qu'il ne me reste plus que ça a faire :

Et dans l'INSERT, n'oublie pas d'ajouter l'id de l'image. 
mais je voit pas comment faire ...

j'ai :
// Ensuite on enregistre le message
        mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");
 
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
17 juil. 2009 à 18:06
Pour le SELECT, c'est :
$reponse = mysql_query("SELECT * FROM minichat WHERE image_id = $_GET['id'] ORDER BY ID DESC LIMIT 0,10");

Si on insert le commentaire en étant sur la page de l'image :
mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message',$_GET['id'])");
0
Salut, désolé d'avoir laissé coulé le sujet mais j'était parti en vacances ... bref mon problemme n'est toujour pas resolu :

je n'arrive pas a envoyé l'id des images dans "image_id" de la table minichat (je croit que le problemme vient de la :)


<?php
if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent
{
    if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer
    {

 
        // On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité

        $message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
        $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));

        // Ensuite on enregistre le message
		mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message', $_GET['id']))");

     }
 }



j'espère que tu sera encore la pour m'aider avion f-16 ;)
0
UP ?
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
6 août 2009 à 12:05
Désolé j'étais en vacances ... à l'hôpital :)
Hum ...
mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message', $_GET['id']))");
(J'ai souligné l'erreur).
0
Je croit que j'ai oublier de précisé quelque chose :
La variable que je transmet entre la page d'acceuil et la page de l'image est l'id de l'image, la fin de la page de l'image est :

image.php?var=362

donc es-ce que ça veut dire que a la place de tes $_GET['id'] je doit mettre $_GET['var'] ?

________________

sinon j'ai réglé le problème de parenthèse mais sa ne fonctionne toujour pas ,
j'ai une Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' a la ligne mysql_query.
Il ne faudrait pas mettre quelque chose a la ligne ou j'ai mis des *** ?
   <?php
									  
									    // D'abord, on se connecte à MySQL
		include("boss/connexion.php"); 
		
if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent
{
    if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer
    {

 
        // On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
        $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
	$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
        *********************************************************
        // Ensuite on enregistre le message
		mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message', $_GET['id'])");

    }
}

?>



j'espere qu'on va y arrivé ^^ , Merci pour ton aide

.
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
6 août 2009 à 13:17
Effectivement c'est pas $_GET['id'] mais $_GET['var']
0
ok , j'ai mis $_GET['var'] mais j'ai toujours l'erreur :

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\wamp\www\allo\HTML\film.php on line 222


et la ligne 222 c'est celle la :
mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message', $_GET['var'])");


est-tu sur qu'on peut mettre un $_GET a l'interrieur d'un mysql_query
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
7 août 2009 à 12:57
Si j'ai bien compris, tu veux avoir une "instance" différente du chat sur chaque page produit ?

Dans ce cas, il te suffit de rajouter un champ id_produit dans la table de chat et de créer ton chat en fonction de l'id du produit. Pour le chat "général", tu mets un id 0 qui ne sera pas utilisé par tes produits.

Est-ce clair ?

edit : Je viens de voir que le sujet date un peu et que la solution a déjà été proposée, sorry ;-p
0
ok, ça fonctionne mais maintenant j'ai une erreure a cette ligne :


// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM minichat WHERE image_id = $_GET['var'] ORDER BY ID DESC LIMIT 0,10"); 

 

ça doit encore etre une histoire de guillemet ...
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
7 août 2009 à 14:09
$reponse = mysql_query('SELECT * FROM minichat WHERE image_id = '.$_GET['var'].' ORDER BY ID DESC LIMIT 0,10'); 
0
Ohhh trop bien ça marche nikel merci a toi Avion F-16.

Mais j'ai un autre problème, kan j'ecrit un message il s'enregistre parfaitement mais lorsque je fait rafraichir la page , il me demande si je veut renvoyéencore une fois le message ....

Aurais -tu une solution pour ça :)

en tout cas merci pour toute ton aide :D
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
7 août 2009 à 15:01
Tu peux créer une page de traitement en PHP qui ne fait aucun echo (et tu ne mets rien à l'extérieur de <?php et ?>) mais qui enregistre les données. Dans cette page, une fois l'enregistrement fait, tu fais une redirection vers la page qui affiche.

Pour faire une redirection :
header('Location: lapagecible.php');
0