IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

commentaires ne se lient pas à une image


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 115
    Par défaut commentaires ne se lient pas à une image
    Bonjour à tous,

    J'ai récemment créé une galerie de miniatures où au clic sur une miniature la grande image s'affiche. Sur cette grande image, j'essaie d'ajouter un système de commentaires, l'affichage des agrandissements fonctionne correctement mais j'ai 2 soucis avec mon système de commentaires:

    1. Le commentaire ne se lie pas à une photo, il s'affiche sous toutes les grandes images or je voudrais le lier à une photo précise évidemment

    2e problème: même si j'ai 10 commentaires dans ma table "commentaire", seul un commentaire s'affiche (le dernier)...

    Etant débutant, je n'arrive pas à trouver mes erreurs merci à tous pour votre aide!

    Voici le code permettant l'apparition de la grande image au clic sur la miniature:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
         $ImageID = $row['ImageID']; 
         $ImageName = $row['ImageName'];
         $MiniName = $row['MiniName']; 
     
         // Chemin absolu de l'imagette
         $ImagetteAbsolutePath = $MiniName;
         $ImageAbsolutePath = $ImageName;
         // Récupère les dimentions de l'imagette
         $JPEGRes = ImageCreateFromJPEG($ImagetteAbsolutePath);
         $xsrc = imagesx($JPEGRes);
         $ysrc = imagesy($JPEGRes);
     
    	echo '<a href="bigphoto.php?img='.$ImageName.'" alt="'.$ImageID.'" target="blank"><img src="'.$ImagetteAbsolutePath.'" width="xsrc" height="ysrc" border="0" alt="miniature"></a>';
    Voici le code de ma page "grande photo" avec le formulaire d'ajout de commentaires:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("site");
     
    $bigphoto = htmlspecialchars($_GET['img']);
    $idimage = htmlspecialchars($_GET['alt']);
    echo '<img src="'.$bigphoto.'" alt=""/>';
     
    $infos = mysql_query('SELECT * FROM commentaire WHERE ImageID="'. $idimage .'"')or die (mysql_error());
    while ($donnees = mysql_fetch_array($infos))
    {
    $pseudo = stripslashes($donnees['pseudo']);
    $commentaire = stripslashes($donnees['commentaire']);
    }
     
    if (isset($_POST['commentaire']) AND isset($_POST['pseudo']))
    {
    if($_POST['commentaire'] != '' AND $_POST['pseudo'] != '')
    {
    $pseudo = mysql_real_escape_string($_POST['pseudo']);
    $commentaire = mysql_real_escape_string($_POST['commentaire']);
    $idimg = $_POST['idimage'];
     
    mysql_query ("INSERT INTO commentaire VALUES('', '" . $pseudo . "', '" . $commentaire . "', '" . $idimg . "')")or die (mysql_error());
     
    echo "Merci d'avoir commenté !";
    }
    }
    ?>
    </body>
     
    <p><strong>Les commentaires:</strong><br/>
    <?php echo htmlspecialchars($pseudo); ?>: <?php echo nl2br(htmlspecialchars($commentaire)); ?></p>
     
     <form action='bigphoto.php' enctype='multipart/form-data' method='post'>
    	<p>
    	<label>Votre pseudo: <input type="text" name="pseudo"/><br/></label>
    	<label>Laissez un commentaire: <br/>
    	<textarea name="commentaire" rows="5" cols="25"/></textarea> <br/></label>
    	<br/>
    	<input type="hidden" name="idimg" value="idimage"/>
    	<input type="submit" value="Ajoutez votre commentaire" id="submit"/> 
    	</p>
    	</form>
     
    </html>
    Ma table "commentaires" fonctionne comme suit:
    CommentaireID
    pseudo
    commentaire
    ImageID

    Merci de votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    pourrais-tu donner les types des champs de la table commentaire?

    ton mysql_error() ne t'a rien affiché sur la page?

    la requête suivante n'est pas correcte:

    $infos = mysql_query('SELECT * FROM commentaire WHERE ImageID="'. $idimage .'"')or die (mysql_error());
    En effet,

    Dans l'hypothèse ou le champ ImageId est de type varchar dans ta base de données:

    la requête sql qu'il faudrait fournir serait la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select * from commentaire WHERE ImageId = '<id_de_tonImage>'
    Le sql s'attend donc à recevoir des simple quotes ' ' et non des double quotes " ".

    en faisant un echo de ta requête, on a:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select * from commentaire WHERE ImageId = "<id_de_tonimag>"
    Ce qui n'est pas correct.

    Tu devras donc l'écrire de cette manière:

    $infos = mysql_query("SELECT * FROM commentaire WHERE ImageID='". $idimage ."'")or die (mysql_error());

    Dans l'hypothèse ou le champ ImageId est de type INTEGER dans ta base de données:

    la requête sql devrait être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from commentaire WHERE ImageID = <ton_id>
    Il ne faut donc pas de double quotes ni de simple quotes

    En php, il faudra donc l'écrire de cette manière:

    $infos = mysql_query("SELECT * FROM commentaire WHERE ImageID=". $idimage)or die (mysql_error());
    Dernière modification par Invité ; 10/08/2008 à 23h18.

Discussions similaires

  1. [IE8] n'affiche pas UNE image
    Par LordVoid dans le forum Windows
    Réponses: 3
    Dernier message: 31/08/2010, 15h21
  2. Réponses: 0
    Dernier message: 22/05/2009, 16h23
  3. Réponses: 6
    Dernier message: 08/02/2007, 10h37
  4. n'affiche pas une image arriere plan definis dans une CSS
    Par mikebranque dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 30/06/2006, 15h54
  5. Le fichier xxx.xxx n’est pas une image Windows32 valide
    Par Furius dans le forum Windows XP
    Réponses: 7
    Dernier message: 12/12/2005, 21h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo