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 :

afficher puis lister toutes les photos [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 17
    Points : 12
    Points
    12
    Par défaut afficher puis lister toutes les photos
    bonsoir,
    je cherche à lister toutes les photos qu'il pourrait y avoir dans une catégorie de ma base de données.
    j'arrive à insérer une 1ère photo, qui ensuite s'affiche sur la page voulue, mais quand j'en insère une seconde, et bien sur la page voulue, j'ai, l'un en dessous de l'autre 2 fois photo n°2 mais par contre j'ai bien les 2 titres différents...

    voici le code de cette page :
    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
    <HTML>
    <style type="text/css">
    <!--
    .Style1 {
    	font-family: Arial, Helvetica, sans-serif;
    	font-weight: normal;
    }
    .Style4 {font-family: "Comic Sans MS"}
    .Style5 {
    	font-size: 18px;
    	font-weight: bold;
    }
    .Style6 {font-family: Verdana, Arial, Helvetica, sans-serif}
    -->
    </style>
    <? require('./config/config.inc.php'); 
    //Récupération des infos de configuration à la base de données
    //Requête de lecture des articles de la base, ordonnés dans le sens decroissant des id
    $requete = mysql_query('SELECT * FROM articles ORDER BY id_articles DESC');
    $nom= mysql_result($requete,0,"nom");
    $image1=mysql_result($requete,0,"image1"); 
    $nbarticles = mysql_num_rows($requete);
    $id_articles = 'id_articles';
    ?>
     
      <div align="center" class="Style1">
        <p class="Style5">&nbsp;</p>
        <p class="Style5 Style6">LES ARTICLES DE PRESSE </p>
        <p>&nbsp;</p>
      </div>
      <TABLE width="650" height="92" border="1" align="center" cellspacing="2" bordercolor="#000000">
     
    <?
    $i=0;
    WHILE($i!=$nbarticles) {
    ?>
            <tr>
              <TD width="640" height="27" align="center" valign="top" class="Verdana_Noir_Gras Style4"><div align="center"><span class="Verdana_Noir_Gras"><span class="Verdana_Noir Style4"><span class="Verdana_Noir"><img src="<? echo $repimages.$image1 ?>"> </span></span></span></div>          </TR>
            <tr>
              <TD height="42" align="center" valign="top" class="Verdana_Noir_Gras"><div align="center"><span class="Verdana_Noir Style4"><span class="Verdana_Noir">
                <?php 
    echo mysql_result($requete,$i,"nom")
     
    ?>
              </span></span>        
              </div>
        </TR>
     
      <? $i++;
    }
    echo mysql_error()
    ?></table>
    <p></p>
    </HTML>
    pouvez vous m'aider ? Merci,
    Auryn

  2. #2
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    c'est peut-être du à ton code HTML qui est catastrophique :
    - les balises c'est en minuscule
    - la balise style est encadré par la balise head
    - le corps de ton document html doit être encadré par la balise body
    - tu ne fermes aucune balises (alors qu'elles doivent toutes l'être)
    - tu devrais jeter un coup d'oeil sur les cours de CSS parce que tu utilises des span à foison et ça ne sert à rien dans ton cas
    - aucun des styles que tu implémentes n'est utilisé et aucun des span que tu crées n'a de style

    En gros tu dois avoir un truc ce style
    Code HTML : 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
    <html>
    <head>
    <style type="text/css">
    .Style1 {
            font-family: Arial, Helvetica, sans-serif;
            font-weight: normal;
    }
    .Style4 {font-family: "Comic Sans MS"}
    .Style5 {
            font-size: 18px;
            font-weight: bold;
    }
    .Style6 {font-family: Verdana, Arial, Helvetica, sans-serif}
    </style>
    </head>
     
    <? require('./config/config.inc.php'); 
    //Récupération des infos de configuration à la base de données
    //Requête de lecture des articles de la base, ordonnés dans le sens decroissant des id
    $requete = mysql_query('SELECT * FROM articles ORDER BY id_articles DESC');
    $nom= mysql_result($requete,0,"nom");
    $image1=mysql_result($requete,0,"image1"); 
    $nbarticles = mysql_num_rows($requete);
    $id_articles = 'id_articles';
    ?>
    <body>
     
      <div align="center" class="Style1">
        <p class="Style5">&nbsp;</p>
        <p class="Style5 Style6">LES ARTICLES DE PRESSE </p>
        <p>&nbsp;</p>
      </div>
      <table width="650" height="92" border="1" align="center" cellspacing="2" bordercolor="#000000">
     
    <?
    $i=0;
    WHILE($i!=$nbarticles) {
    ?>
    <tr>
      <td ...><div align="center"><span en pagaille><img src="<? echo $repimages.$image1 ?>"> </span></span></span></div> </td>         
    </tr>
    <tr>
      <td ...><div align="center"><span en pagaille><?php echo mysql_result($requete,$i,"nom")?></span></span></div></td> 
    </tr>
     
      <? $i++;
    }
    echo mysql_error()
    ?>
    </table>
    <p></p>
    </body>
    </html>
    PS : l'utilisation d'un tableau ici n'est pas bonne mais ça c'est une autre histoire.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Bonjour,
    merci de ta réponse, j'ai nettoyé mon code comme tu m'a dit.
    je ne comprends pas pourquoi l'utilisation d'un tableau n'est pas correcte ?
    et je n'arrive tjrs pas à trouver mon erreur pour les images qui ne s'affichent pas correctement, alors que les titres sont bons. c'est d'ailleurs pour l'esprit "pratique" que j'avais fait un tableau : 1 colonne pour l'image et 1 colonne pour le titre de l'image.....

    Bonne journée
    Auryn

  4. #4
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Citation Envoyé par auryn111
    c'est d'ailleurs pour l'esprit "pratique" que j'avais fait un tableau : 1 colonne pour l'image et 1 colonne pour le titre de l'image.....
    Ce n'est pas ce que tu fais : toi tu crées une ligne pour le titre et une ligne pour l'image (tr = nouvelle ligne, td = nouvelle colonne)
    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
    <body>
     
      <div align="center" class="Style1">
        <p class="Style5">&nbsp;</p>
        <p class="Style5 Style6">LES ARTICLES DE PRESSE </p>
        <p>&nbsp;</p>
      </div>
     
    <?php
    $i=0;
    WHILE($i!=$nbarticles) {
    ?>
     
    <div style="float:left">
    	<img src="<?php echo $repimages.$image1 ?>" />
    </div>    
    <div style="float:right">
    	<?php echo mysql_result($requete,$i,"nom")?>
    </div> 
     
    <?php
    $i++;
    }
    echo mysql_error()
    ?>
    </body>
    PS : je n'y ai pas pensé tout à l'heure mais utilise <?php plutôt que <?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    merci beaucoup pour tes explications
    par contre, j'ai tjrs le meme pb à savoir que l'image n° 2 s'affiche dans les 2 cas, alors que le titre 1 et titre 2 (variable "nom") apparaissent eux correctement..

  6. #6
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    c'est normal tu récupère le premier résultat de la requête SQL, tu ne parcours pas le tableau de résultats. Essaie comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $result = mysql_query($query);//execution requête
    while ($row = mysql_fetch_array($result)) //pour chaque ligne du tableau renvoyé
    {
       echo ($row[0].'<br />'.$row[1].'<br />'.../*autant de fois que tu as de champs dans ta table*/);
    }
    Je te donnes le principe maintenant à toi de mettre tout en place

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    ok, alors j'ai ma requete maintenant qui est :
    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
    <? require('./config/config.inc.php'); 
    //Récupération des infos de configuration à la base de données
    //Requête de lecture des articles de la base, ordonnés dans le sens decroissant des id
    $requete = mysql_query('SELECT * FROM articles ORDER BY id_articles DESC');
    $nom= mysql_result($requete,0,"nom");
    $image1=mysql_result($requete,0,"image1"); 
    $nbarticles = mysql_num_rows($requete);
    $id_articles = 'id_articles';
     
    $result = mysql_query($query);//execution requête
    while ($row = mysql_fetch_array($result)) //pour chaque ligne du tableau renvoyé
    {
       echo $row[0].'<br />'.$row[1].'<br />'; //autant de fois que tu as de champs dans ta table
    }  
     
    ?>
    mais je pense que j'ai un souci lors de l'enregistrement de mes photos, car ca me mets, sur la page où je devrai voir 2 photos différentes et 2 titres différents :
    - la photo n°2 à chaque fois
    par contre, les 2 titres sont bien différents
    - à coté de la photo qui devrait etre la 1 mais qui en fait s'avère etre la 2, il y a écrit : Query was empty

    je suppose donc que ma requete n'aboutit pas car il n'y a pas de photo 1 dans ma bdd...
    je suis donc allée chercher dans ma bdd pour regarder de plus près et ....j'ai pourtant bien photo1.jpg puis photo2.jpg, soit 2 photos différentes.....
    en tout cas, un gd merci de tes réponses ultra rapides !!!

  8. #8
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    tu devrais faire simplement ceci pour savoir ce que te renvoit la requête déjà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $requete = mysql_query('SELECT * FROM articles ORDER BY id_articles DESC');
    $result = mysql_query($query);//execution requête
    while ($row = mysql_fetch_array($result)) //pour chaque ligne du tableau renvoyé
    {
       echo $row[0].'<br />'.$row[1].'<br />'; //autant de fois que tu as de champs dans ta table
    }
    et si elle te renvoit ce qu'elle doit te renvoyer (ça devient dur de suivre là hein ) alors change ton code pour récuperer row[0], row[1], row[2], ... et afficher tes images et tes titres.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Bonsoir,
    alors j'ai lancé la requete et ca ne me renvoie rien du tout.... la page est désespérement vide....
    c'est pas gagné....

  10. #10
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    C'est le problème les 3 quarts du temps mais on oublie toujours de tester la requête.
    Pourtant la tienne est basic tu est sur que tu as quelquechose dans ta table articles ?

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    et bien oui j'ai bien mes 2 photos et mes 2 titres distincts.....
    quelle galère

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    oui j'ai bien pourtant mes photos et titres distincts...

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 17
    Points : 12
    Points
    12
    Par défaut j'ai trouvé !!
    j'ai totalement changé mon code en me basant sur un autre de mes sites, et ca fonctionne !!
    voici le 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
    <? // s'il n'y a encore rien dans cette catégorie
    $sql = 'SELECT * FROM articles ORDER BY id_articles DESC;'; 
    ?>
     
    <html>
    <style type="text/css">
    <!--
    .Style1 {
    	font-family: Verdana, Arial, Helvetica, sans-serif;
    	font-weight: bold;
    	font-size: 18px;
    }
    -->
    </style>
     
     
        <div align="center">
          <table width="75%"  border="0" align="center">
            <tr>
              <td width="28%" valign="top"><? 
    //selection de l'image 1 de chaque entrée pour les afficher
    $query = mysql_query($sql); 
    ?> <div align="center">
               <span class="Style1">LES ARTICLES DE PRESSE </span></p>
                </div>
                <table border="1" align="center"> 
       <? 
     
     
         $i = 0; //->J'initialise mon compteur 
          while($list = mysql_fetch_assoc($query)) { 
          $id_articles  = $list['id_articles']; 
          $nom = $list['nom']; 
          $image_file = $repimages_admin . $list['image1']; 
          $thisurldetail = $urldetail . $id; 
            //Je teste si  je suis en bout de ligne 
          if(($i % 4 == 0) && ($i != 0)) 
          { 
             echo "</tr><tr>"; 
          } 
       ?> 
           <td width="237" align="center" valign="top"><div align="center"><img src="<?=$image_file?>" alt="<? echo "$nom &#013"; ?>" height="235" border="0" ></div></td> 
     
     
      <? 
       $i++; 
        } 
      ?> 
         </tr> 
    </table>
    merci en tout cas pour ton aide !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lister toutes les clés étrangères de toutes le tables
    Par Samish dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/08/2005, 10h15
  2. lister tout les modules installer de perl
    Par black_code dans le forum Modules
    Réponses: 6
    Dernier message: 05/08/2005, 18h20
  3. afficher l'heure toutes les minutes
    Par rvfranck dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 22/02/2005, 14h12
  4. [firebird 1.5] lister toutes les tables
    Par c0rwyn dans le forum SQL
    Réponses: 2
    Dernier message: 02/09/2004, 14h36
  5. Réponses: 8
    Dernier message: 17/10/2002, 12h52

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