[PHP] Module commentaire different sur chaque

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.
Configuration: Windows XP
Firefox 3.0.7

20 réponses

  1. Essaye avec ça :
    mysql_query('INSERT INTO minichat VALUES("", "'.$pseudo.'", "'.$message.'", "'.$_GET['var'].'")');
    1. 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.
      1. 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
        1. 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.
          1. 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
            1. image_id ne doit être du même type que 'id' dans la table des images mais pas en AI
              1. 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')");
                 
                
                1. 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'])");
                  1. 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 ;)
                    1. 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).
                      1. 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

                        .
                        1. 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
                          1. 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
                            1. 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 ...
                              1. $reponse = mysql_query('SELECT * FROM minichat WHERE image_id = '.$_GET['var'].' ORDER BY ID DESC LIMIT 0,10'); 
                                1. 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
                                  1. 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');