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 :

[Conception] Tableau avec données SGBD


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 153
    Points : 56
    Points
    56
    Par défaut [Conception] Tableau avec données SGBD
    bonjour,
    je souhaiterai afficher une image et un texte descriptif de cette image sur une même ligne.
    Pour cela j'ai pensé que faire un tableau serait le plus approprié, seulement je ne sais comment coder de façon correcte.
    Je vous fourni une partie de mon code pour exlication:
    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
     
    echo '<table>';
      for ($i=0; $i <$num_results; $i++)
      {
         $row = $result->fetch_assoc();
         //echo '<p><strong>'.($i+1).'. Prix: ';
    	 //echo '</strong><br />Type: ';
    	 //echo'<td>';
    	 echo'<tr>';
         echo '<img src="'.stripslashes($row['IMAGEBIEN']).'" alt="" />';
    	 echo '<strong>Prix: ';
         echo htmlspecialchars(stripslashes($row['PRIX' ].' EUROS'));
    	 //echo ' EUROS';
         echo '</strong><br />Type: ';
         echo stripslashes($row['NOMTYPE']);
    	 echo '</strong><br />Superficie: ';
         echo stripslashes($row['SUPERFICIE']);
         echo '<br />Ville: ';
         echo stripslashes($row['NOMVILLE']);
         echo '<br />Référence: ';
         echo stripslashes($row['REFERENCE']);
    	 echo'</tr>';
    	 //echo '</td>';
         //echo '</p>';
      }
       echo '</table>';
    evidemment ce code ne fonctionne pas pour ce que je souhaite faire, je suis en train de tester ou placer les balises mais surtout j'aimerai savoir si je suis sûr la bonne piste

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Déjà un tableau est toujours composé de tr et td sinon tu verras rien. DOnc n'oublies pas ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <table><tr><td></td></tr></table>
    Sinon, vu que l'on a pas tes classes, tu récupères le résultats de la requete ou juste la ligne. Ton for est-il vraiment indispensable seul la définition de ta classe nous le dira mais je verrai un code comme ceci et sans classe :

    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
     
    echo '<table>';
    while($row = mysql_fetch_array($query))
    {
        	 echo '<tr><td>';
        echo '<img src="'.stripslashes($row['IMAGEBIEN']).'" alt="" />'; 
        echo '</td><td>';
        echo '<strong>Prix: ';
        echo htmlspecialchars(stripslashes($row['PRIX' ].' EUROS'));
        echo '</strong><br />Type: ';
        echo stripslashes($row['NOMTYPE']);
        echo '</strong><br />Superficie: ';
        echo stripslashes($row['SUPERFICIE']);
        echo '<br />Ville: ';
        echo stripslashes($row['NOMVILLE']);
        echo '<br />Référence: ';
        echo stripslashes($row['REFERENCE']);
        echo'</td></tr>';
    }
    echo '</table>';

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 153
    Points : 56
    Points
    56
    Par défaut
    merci, je viens donc de mettre en place mon tableau mais cela ne résoud malheureusement pas mon problème.
    voici le lien:
    http://www.understoodio.info/
    il suffit de lancer la requête depuis le moteur de recherche, selectionnes juste ventes

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    On peut pas tester :
    Moteur De Recherche

    Error: Could not connect to database. Please try again later.

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 153
    Points : 56
    Points
    56
    Par défaut
    ça doit être mieux la

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    C'est bien ce que je disais tu fais pas comme je te l'ai dit. Selon code html en sorti tu as un seul td et tu utilises des br pour les retours à la ligne.

    Donc maintenant tu as deux solutions :
    • faire comme je te l'ai montré plus haut mettre deux td
    • garder un seul td mais utiliser du css et faire deux div l'un contenant la photo en float left et de même pour le texte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $row = $result->fetch_assoc();
    echo'<tr><td>';
    echo '<img src="'.stripslashes($row['IMAGEBIEN']).'" alt="" /></td><td>';
    echo '<strong>Prix: ';
    echo htmlspecialchars(stripslashes($row['PRIX' ].' EUROS'));
    echo '</strong><br />Type: ';
    echo stripslashes($row['NOMTYPE']);
    echo '</strong><br />Superficie: ';
    echo stripslashes($row['SUPERFICIE']);
    echo '<br />Ville: ';
    echo stripslashes($row['NOMVILLE']);
    echo '<br />Référence: ';
    echo stripslashes($row['REFERENCE']);
    echo'</td></tr>';
    Ce n'est qu'un problème de td

  7. #7
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 153
    Points : 56
    Points
    56
    Par défaut
    ok c'est cool merci ça fonctionne
    par contre je vois que tu as mis deux balises ouvertes de td mais qu'une de fermé, certes ça marche, mais cela veut donc dire que les balises fermantes ne sont pas obligatoires?

  8. #8
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Je crois que tu as mal lu, il y a le compte en balise

  9. #9
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 153
    Points : 56
    Points
    56
    Par défaut
    OUF, je suis bigleux!

  10. #10
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 153
    Points : 56
    Points
    56
    Par défaut
    bon plutôt que de recreer un post, je fais ma demande ici vu que ç'est dans la continuité
    j'aimerai en fait rajouter une image de fond à mon tableau, pour l'instant j'ai l'image du bien et son texte d'associé sur la même ligne.
    j'ai penser à créer un élément block dans mon fichier css, donc d'inserer une balise div avant d'afficher l'image et le texte.
    je n'ai pas réussi à coder correctement, je me suis donc tourné vers l'utilisation de balises td rajouté à mon tableau comme ci dessous:
    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
     
    echo '<tr><td>';
    	 echo '<img src="img2/souscadrebien.png"></td><td>';
         echo '<img src="'.stripslashes($row['IMAGEBIEN']).'" alt="" /></td><td>';
    	 echo '<strong>Prix: ';
         echo htmlspecialchars(stripslashes($row['PRIX' ].' EUROS'));
    	 //echo ' EUROS';
         echo '</strong><br />Type: ';
         echo stripslashes($row['NOMTYPE']);
    	 echo '</strong><br />Superficie: ';
         echo stripslashes($row['SUPERFICIE']);
         echo '<br />Ville: ';
         echo stripslashes($row['NOMVILLE']);
         echo '<br />Référence: ';
         echo stripslashes($row['REFERENCE']);
    	 echo '</td></tr>';
    donc pour l'instant j'ai l'image qui s'affiche mais la superposition de mon image et de mon texte ne marche pas.il manque forcément untruc

  11. #11
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Utilises l'attribut background-image de table ce sera plus simple. Ou tu crées un div avec un backgroud-image et tu mets le tableau dedans.

    Il faudrait aussi penser au background-repeat si c'est une image qui peut être répétée

  12. #12
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 153
    Points : 56
    Points
    56
    Par défaut
    yep j'ai donc utilisé l'attribut dans ma balise table, c'est ok
    http://www.understoodio.info/
    maintenant j'ai un soucis, cela concerne l'ecart entre mes deux cellules, en effet elles ne se collent pas et ensuite les cellules ont une bordure, ce que je ne veux pas, j'aimerai les rendre transparente, j'ai utilisé pour cela l'attribut hidden, de ce façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    	 echo '<tr style="background-image:url(img2/souscadrebien2.png); background-repeat:no-repeat">';
         echo '<td style="border-style:hidden"><img src="'.stripslashes($row['IMAGEBIEN']).'" alt="" /></td><td>';
    	 echo '<strong>Prix: ';
         echo htmlspecialchars(stripslashes($row['PRIX' ].' EUROS'));
         echo '</strong><br />Type: ';
         echo stripslashes($row['NOMTYPE']);
    	 echo '</strong><br />Superficie: ';
         echo stripslashes($row['SUPERFICIE']);
         echo '<br />Ville: ';
         echo stripslashes($row['NOMVILLE']);
         echo '<br />Référence: ';
         echo stripslashes($row['REFERENCE']);
    	 echo '</td></tr>';
    Aussi j'ai essayé la technique de la balise div, j'ai créé un element block "souscadrebien" dans mon fichier css, l'attribut background-image: url(img2/souscadrebien.png);
    mais cela ne fonctionnait pas, j'ai certainement mal placé mon élément, j'aurai aimé savoir comment coder de façon correcte un element div dans du php , ç'est juste pour en savoir un peu plus...
    merci

  13. #13
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Là pour que ton tableau n'ait aucun espace entre les différentes cellules ou/et lignes il faut utiliser le cellpadding et cellspacing en les mettant à 0

  14. #14
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 153
    Points : 56
    Points
    56
    Par défaut
    après de multiples modifs, voici mon code(presque definitif):
    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
     
    echo '<table width="569" height="108" cellpadding="0" cellspacing="0">';
      for ($i=0; $i <$num_results; $i++)
      {
         $row = $result->fetch_assoc();
    	 echo '<tr style="background-image:url(img2/souscadrebien2.png); background-repeat:no-repeat" height="105">';
         echo '<td width="135"><img src="'.stripslashes($row['IMAGEBIEN']).'" alt="" /></td><td>';
    	 echo '<strong>Prix: ';
         echo htmlspecialchars(stripslashes($row['PRIX' ].' EUROS'));
         echo '</strong><br />Type: ';
         echo stripslashes($row['NOMTYPE']);
    	 echo '</strong><br />Superficie: ';
         echo stripslashes($row['SUPERFICIE']);
         echo '<br />Ville: ';
         echo stripslashes($row['NOMVILLE']);
         echo '<br />Référence: ';
         echo stripslashes($row['REFERENCE']);
    	 echo '</td></tr>';
      }
       echo '</table>';
    j'ai donc résolu mon problème d'espacement et de bordure blanche, par contre étant donné que j'ai donné un cellpadding et un cellspacing à 0, je me retrouve maintenant confontré à un problème au niveua de l'affichage de l'image, qui se retrouve collé à mon tableau, normal.....
    je me suis donc dis que je devai jouer sur la proprieté cellspacing ou cellpadding de la balise td qui concerne l'image, mais rien n'y fait, keud, nothing...
    donc comment pourrai je agir sur l'espavement de l'image par rapport au cadre de dessous(img2/souscadrebien2.png)?

  15. #15
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Le cellpadding et etc sont spécifique au table et non aux cellules, donc normal que ça fonctionne pas. Si tu veux faire un espacement tu peux utiliser le padding-left qui aura pour but de mettre ton texte avec un décalage en partant de la gauche .

    [HS] CSS pas PHP [/HS]

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

Discussions similaires

  1. [AC-2003] Tableau avec données regroupées
    Par willytito dans le forum IHM
    Réponses: 3
    Dernier message: 15/06/2012, 10h00
  2. Réponses: 12
    Dernier message: 29/03/2011, 11h55
  3. [MySQL] Affichage tableau avec données
    Par johan0510 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 05/03/2010, 15h14
  4. [8.5] conception tableau avec quadrillage
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 24
    Dernier message: 20/06/2007, 15h58
  5. [VBA Excel] Tableau avec données du userform et de formules
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/06/2006, 13h29

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