PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 15-02-2010 22:29:49

xavb
Membre
Inscription : 15-02-2010
Messages : 9

affichage des images jusque 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



Dans ma page Mes Jeux voici mon code :

<?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> </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> </td>
        <td> </td>
      </tr>
      <tr>
        <td><p>Description : </p>
        <p>&<?php echo $donnees['description']; ?>;</p></td>
        <td></td>
        <td> </td>
      </tr>
      <tr>
        <td>LIEN 1 : <a href=<?php echo $donnees['lien1']; ?> title=<?php echo $donnees['titre']; ?> target="_blank">Lien vers le site</a></td>
        <td>LIEN 2 : <?php echo $donnees['lien2']; ?></td>
        <td> </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>

D'avance merci

Hors ligne

#2 15-02-2010 23:19:31

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : affichage des images jusque la fin

salut,

juste pour info c'est quoi la question ? :-)

faut pas mettre <table> et </table> dans la boucle while mais en dehors.

voila, si tu a une question qui va avec ça hésite pas smile

@+

PS : pour coloriser le code,il faut présicer le type (code=php par exemple wink).


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#3 16-02-2010 08:27:27

xavb
Membre
Inscription : 15-02-2010
Messages : 9

Re : affichage des images jusque la fin

Salut,

La question est la suivante (ligne 41), par jeu il y a entre 4 et 6 images, je souhaite qu'il verifie qu'il y a des images et si il y en a qu'il les affiche. Je pense à une condition mais je ne sais pas l'écrire en code.
J'ai x images il affiche x images, j'ai pas d'images il n'en affiche pas.

Je ne sais pas si je suis très clair

Merci

Hors ligne

#4 16-02-2010 22:46:03

xavb
Membre
Inscription : 15-02-2010
Messages : 9

Re : affichage des images jusque la fin

alors j'ai avance un peu mais ça n'affiche toujours aucune image mis a part le logo, mais pad les x images correspondantes à l'ID_jeux ????

quelqu'un pourrait-il me dire ce qui ne va pas dans ces quelques lignes :


<?
$req = mysql_query('SELECT * FROM jeux INNER JOIN images ON jeux.id_jeux=images.id_jeux');
while ($data = mysql_fetch_array($req))
{?>
<td><img src="<? echo $data['images'];?>"/> </td><? //affiche Rien du tout

}
?>
 

D'avance merci

Hors ligne

#5 17-02-2010 00:27:04

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : affichage des images jusque la fin

Et dans le code généré il n'y a vraiment rien non plus ?
Sinon si ton bout de code est tout seul suivant les navigateurs il ne va rien t'afficher car tu n'as pas la balise <table> ainsi que la balise <tr>.

Essayes d'exécuter la requête dans ton SGBD afin de voir si elle retourne un résultat. (en mode console ou bien par un script comme phpmyadmin)

Dernière modification par xTG (17-02-2010 00:27:51)

Hors ligne

#6 17-02-2010 09:23:29

xavb
Membre
Inscription : 15-02-2010
Messages : 9

Re : affichage des images jusque la fin

Ca est ça affiche les images mais une par fiche, c'est à dire que j'ai autant de fois la fiche complète que d'images...

Ce que je voudrais c'est la synthase pour afficher toutes les images correspondantes au jeu dans la même fiche les unes à la suite des autres :


$reponse = mysql_query("SELECT jeux.*, categorie.*, images.* FROM jeux LEFT JOIN ma_base.categorie ON jeux.id_categorie=categorie.id_categorie LEFT JOIN ma_base.images ON jeux.id_jeux=images.id_jeux WHERE categorie.id_categorie = jeux.id_categorie and images.id_jeux=jeux.id_jeux"); // Requête SQL


// On fait une boucle pour lister tout ce que contient la table :
 
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> </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> </td>
        <td> </td>
      </tr>
      <tr>
        <td><p>Description : </p>
        <p>&<?php echo $donnees['description']; ?>;</p></td>
        <td></td>
        <td> </td>
      </tr>
      <tr>
        <td>Lien 1 : <a href=<?php echo $donnees['lien1']; ?> title=<?php echo $donnees['legende']; ?> target="_blank">Lien 1</a></td>
        <td>Lien 2 : <?php echo $donnees['lien2']; ?></td>
        <td> </td>
      </tr>
     
      <tr>

<td><img src="<?php echo $donnees['images']; ?>"/>

}
?>
        <td></td>
        <td></td>
      </tr>
    </table>
    <p><br />
      <br />
</p>
    <p>
      <?php
}
 

?>
 

Merci pour votre aide

Hors ligne

#7 17-02-2010 11:42:24

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : affichage des images jusque la fin

C'est bizarre comment on retrouve les mêmes problèmes ces derniers temps. ^^

Voici le sujet que j'avais posté pour un autre membre qui a eu le même problème que toi hier :
http://forum.phpdebutant.org/viewtopic.php?id=5242

Le but est d'utiliser un flag(drapeau) afin de savoir si on a déjà affiché une partie redondante de la requête (dans ton cas ta fiche).

Hors ligne

#8 17-02-2010 11:48:50

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : affichage des images jusque la fin

hum, c'est fesable avec Mysql, ceci dit MK serais plus indiqué que moi pour y répondre.
sinon, les * c'est le mal (même très mal suivant les tables).
et je ferais une requete au milieu de la boucle pour les images !

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#9 17-02-2010 13:31:32

xavb
Membre
Inscription : 15-02-2010
Messages : 9

Re : affichage des images jusque la fin

Merci xTG,

mais quand je met le code :

$tabFlagImages = array();
while( $donnees = mysql_fetch_array($sql) )

      {

        if( !isSet($tabFlagImages[$donnees['titre']]) )

        {

            $tabFlagRubrique[$item['titre']] = 1;

            echo $item['titre'];

        }

       echo $donnee['images'];

      }


 

il m'affiche toutes les images pour une seule fiche, avant il affichait une fiche par image et maintenant une seule et unique fiche pour toutes les images. Alors que j'ai une trentaine de jeux...

Moi ce que je voudrais c'est qu'il affiche la fiche du jeu avec ces 5 à 6 photos...

Je sais je suis null mais il faut bien débuter un jour...

Hors ligne

#10 17-02-2010 15:40:20

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : affichage des images jusque la fin

Récupères-tu les images dans le désordre ? Si c'est le cas il te faut les grouper par fiche de jeu. (ORDER BY champs ASC dans la requête)
Ainsi tu auras une fiche de jeu et le première image, puis les autres images de la fiche avant de passer à la seconde fiche de jeu.

Hors ligne

Pied de page des forums