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 :

Affichage des images jusqu'à la fin


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4
    Par défaut Affichage des images jusqu'à la fin
    Bonjour à tous et à toutes,

    Je suis en train de débuter en PHP et je souhaite réaliser un petit site perso, mais j'ai beaucoup idée mais très peu de connaissance pour réussir à écrire tout cela en code...

    Alors voici mon premier post, ce qui veux dire que d'autre vont surement suivre......

    Donc je me permet de vous solliciter, en espérant que vous pourrez m'aider.

    J'ai une base "ma_base" avec 3 tables "categorie" ; "images" et "jeux" :

    categorie : id_categorie (cle primaire) et categorie

    images : id_images (cle primaire) ; id_jeux (cle secondaire) ; legende ; images ; logo

    jeux : id_jeux (cle primaire) ; titre ; date ; id_categorie ; langue ; description ; version ; prix ; lien1 ; lien2

    Ce que je souhaiterais c'est que tant qu'il y a des images dans la table en lien avec l'ID-jeux que cela s'affiche pour le moement j'ai autant de fois la fiche que j'ai d'image. Moi je voudrais que les images soient côte à cote et sur une seule et meme fiche (je ne sais pas si je suis très clair)



    Dans ma page Mes Jeux voici mon code :
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    <?php
    mysql_connect("localhost", "user", "pass"); // Connexion à MySQL
    mysql_select_db("ma_base"); // Sélection de la base
     
    $reponse = mysql_query("SELECT jeux.*, categorie.*, images.* FROM categorie, jeux, images WHERE categorie.id_categorie = jeux.id_categorie and images.id_jeux=jeux.id_jeux"); // Requête SQL
     
     
    while ($donnees = mysql_fetch_array($reponse) )
    {
    ?>
     
        <table width="100%" border="0">
          <tr>
          	<td><strong>Jeux</strong> : <?php echo $donnees['titre']; ?></td>
             <td><img src=<?php echo $donnees['logo']; ?> width="177" height="174" /></td>
            <td>Prix : <?php echo $donnees['prix']; ?> €uro</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td>Date de sortie de l'application : <?php echo $donnees['date']; ?> </td>
            <td>Version de l'application : <?php echo $donnees['version']; ?></td>
            <td>Catégorie : <?php echo $donnees['categorie']; ?></td>
          </tr>
          <tr>
            <td>Langue : <?php echo $donnees['langue']; ?></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td><p>Description : </p>
            <p>&<?php echo $donnees['description']; ?>;</p></td>
            <td></td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td>LIEN 1 : <a href=<?php echo $donnees['lien1']; ?> title=<?php echo $donnees['titre']; ?> target="_blank">Lien vers iTunes</a></td>
            <td>LIEN 2 : <?php echo $donnees['lien2']; ?></td>
            <td>&nbsp;</td>
          </tr>
          <tr>
             <td><img src="<?php echo $donnees['images']; ?>"  /></td> // je souhaite que tant que des images correspondantes au jeu il les affiche et là je bloque complèment
     
            <td></td>
            <td></td>
          </tr>
        </table>
        <p><br />
          <br />
    </p>
        <p>
          <?php
    }
     
     
    ?>
    </p>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il faut que tu fasses une requete pour lire les images de chaque jeu lu dans ta premiere requete.

    En faisant une jointure comme tu le fais actuellement, tu recoltes forcemment autant de ligne que d'image.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4
    Par défaut
    Serait-il possible de me donner les lignes de code, parce que là je sèche complètement ?

    Merci

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu fais une requete ou tu lis les jeux et dans la boucle de lecture du resultat tu fais une requete pour lire les images qui ont l'id de ce jeu.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reponse = mysql_query("SELECT jeux.*, categorie.*, images.* FROM categorie, jeux, images WHERE categorie.id_categorie = jeux.id_categorie and images.id_jeux=jeux.id_jeux"); // Requête SQL
    Déjà ce genre de requete c'est pas top, à remplacer par des jointures internes voire externe, ici en interne ça ne t'affichera que les jeux qui ont des images

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT jeux.*, categorie.*, images.* 
    FROM categorie as C 
        INNER JOIN jeux  as J ON C.id_categorie = J.id_categorie
     INNER JOIN images as I ON I.id_jeux=J.id_jeux
    teste avec LEFT JOIN pour que tu vois bien la différence...

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Par défaut
    @maysa: je ne pense pas que les jointures externes (ou une jointure en general)= soient la solution recherché

    @xav22: sabotage t'a déjà donné une solution valable, soit:


    1-tu exécute une requête de type "SELECT jeux.*, categorie.* from ..."
    2- dans la boucle où tu liste les jeux exécute une seconde requête "select * from image where images.id_jeux=".$donnees['id_jeux'] ($donnee correspondra au résultat de la première requête sur les jeux)
    3- tu fais une boucle sur le résultat de la seconde requête pour lister les images

Discussions similaires

  1. Réponses: 12
    Dernier message: 12/06/2007, 17h02
  2. Réponses: 3
    Dernier message: 14/04/2006, 09h32
  3. [XML/CSS/XSL] Problème d'affichage des images "dynamiqu
    Par popol55 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 06/04/2006, 16h24
  4. Mauvais affichage des images et message d'erreur
    Par SLAM JACK dans le forum Langage
    Réponses: 3
    Dernier message: 29/03/2006, 18h11
  5. Priorité d'affichage des image de fond.
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 06/09/2005, 18h02

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