Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2916 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  affichage bases join table mysql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

affichage bases join table mysql

n°1932131
t671
Posté le 15-10-2009 à 16:48:33  profilanswer
 

Bonjour,
 
Je lis une base mysql pour afficher le texte issu de la table "manifestation", avec le ou les éléments (lien_fichier) associé(s) de la table "upload".
Mon problème restant, étant à l'affichage.
Le texte de la table manifestation s'affiche avec un élément de la table upload, dans le même cadre. Ensuite, les autres éléments de upload associés sont affichés les uns en dessous des autres, et en dehors du tableau ....
Et moi je voudrais afficher ces autres éléments à côté du premier !!!!
 
Voici la partie tableau de mon code :
 

Code :
  1. $idEncours = 0;
  2. while($row = mysql_fetch_array($result))
  3. {
  4. if( $idEnCours != $row['id'] )
  5. {
  6. echo '<table width="800px" border="1">';
  7. echo '<tr>';
  8. echo '<td align="center">'.nl2br($row['texte']).'<p>';
  9. }
  10. if ($idEnCours = $row['id_liaison']);
  11. if (in_array($row['extension'], array( ".jpg", ".JPG", ".png", ".PNG", ".jpeg", ".JPEG", ".gif", ".GIF" )))
  12. {
  13. echo '<a href ="http://xxxxxxx ' . $row['lien_fichier'] . '"><img src="http://xxxxxxx ' . $row['lien_fichier'] . '"></a>';
  14. }
  15. elseif (in_array($row['extension'], array( ".doc", ".DOC", ".pdf", ".PDF" )))
  16. {
  17. echo 'a href ="http://xxxxx ' . $row['lien_fichier'] . '">Télécharger ou afficher le document<br><img src="../../../images/commande.gif"></a>';
  18. }
  19. echo '</td></tr></table><p>';
  20. }


 
id est l'identification unique de l'élément texte de la table manifestation.
id_liaison est l'élément relieur de la table upload à la table manifestation. Il a la valeur de l'id de manifestation, et il existe autant de fois qu'il y a d'élément qui se relient à manifestation.

mood
Publicité
Posté le 15-10-2009 à 16:48:33  profilanswer
 

n°1932145
pataluc
Posté le 15-10-2009 à 17:02:12  profilanswer
 

tu pourrais nous poster la requête pour compléter?

n°1932152
t671
Posté le 15-10-2009 à 17:10:03  profilanswer
 

pataluc a écrit :

tu pourrais nous poster la requête pour compléter?


 
Voici donc le bloc du dessus, la requête, pour compléter .....
 

Code :
  1. //récupèration des enregistrements  
  2. $requete="SELECT manifestations.id, manifestations.jour , manifestations.heure ,manifestations.datefr ,manifestations.titre ,manifestations.texte , upload.id_liaison, upload.lien_fichier, upload.fichier, upload.extension
  3.           FROM manifestations LEFT JOIN upload ON manifestations.id=upload.id_liaison
  4.           ORDER BY manifestations.date ASC";
  5. $result = mysql_query($requete,$link) or exit ('Erreur : '.mysql_error() );

n°1932156
pataluc
Posté le 15-10-2009 à 17:14:39  profilanswer
 

tu ne ferme pas tes cellules de tableau (td) avant le tr de le fin de la ligne... normal que tout soit dans une seule cellule.

n°1932167
t671
Posté le 15-10-2009 à 17:28:48  profilanswer
 

pataluc a écrit :

tu ne ferme pas tes cellules de tableau (td) avant le tr de le fin de la ligne... normal que tout soit dans une seule cellule.


 
Ben si ! J'ouvre le tr en ligne 7, j'ouvre le td en ligne 8, je ferme le td en ligne 2, puis le tr.
J'ai essayé en mettant </td>, </tr> et </table> l'un dessous l'autre, c'est pareil ....  :(

n°1932174
pataluc
Posté le 15-10-2009 à 17:36:47  profilanswer
 

t671 a écrit :


 
Ben si ! J'ouvre le tr en ligne 7, j'ouvre le td en ligne 8, je ferme le td en ligne 2, puis le tr.
J'ai essayé en mettant </td>, </tr> et </table> l'un dessous l'autre, c'est pareil ....  :(


Ben non! :D
 
 
tu dois avoir un "<td>contenu de la cellule</td>" par cellule, donc pour une ligne avec 3 cellules, tu auras:

Code :
  1. <tr><td>cellule1</td><td>cellule2</td><td>cellule3</td></tr>

alors que toi tu fais qqchose comme ca:

Code :
  1. <tr><td>cellule1     cellule2     cellule3</td></tr>

(sauf erreur de ma part)

n°1932177
pataluc
Posté le 15-10-2009 à 17:39:25  profilanswer
 

D'ailleurs c'est même pire que ca, j'avais pas fait gaffe, tu fais un tableau par cellule!

 

globalement, écris en pseudo code, tu devrais avoir qqchose comme ca:

 
Code :
  1. echo "<table>";
  2. pour chaque ligne
  3.     echo "<tr>";
  4.     pour chaque cellule de la ligne en cours
  5.         echo "<td>contenu cellule</td>";
  6.     fin pour
  7.     echo "</tr>";
  8. fin pour
  9. echo "</table>";
 

tu me suis?


Message édité par pataluc le 15-10-2009 à 17:40:00
n°1932187
t671
Posté le 15-10-2009 à 17:48:48  profilanswer
 

Ben non !!!! Je te suis pas trop, car en mettant des td devant les lignes affichant les "lien_fichier", il me recré des cases à côté du texte.
Moi je veux afficher mes "lien_fichier" dans la même case et sous le texte ....
 
Tel que c'est, le premier lien_fichier est bien positionné, mais les suivants sortent du tableau. Cela doit venir de la boucle, mais je ne vois pas comment la positionner ....

n°1932188
pataluc
Posté le 15-10-2009 à 17:53:29  profilanswer
 

0_o  
 
j'comprends rien à ce que tu racontes... tu peux mettre une copie d'écran de ce que tu as (ou a défaut du html généré par ton php) et annoter dessus ce que tu voudrais?

n°1932192
t671
Posté le 15-10-2009 à 18:05:01  profilanswer
 

pataluc a écrit :

0_o  
 
j'comprends rien à ce que tu racontes... tu peux mettre une copie d'écran de ce que tu as (ou a défaut du html généré par ton php) et annoter dessus ce que tu voudrais?


 
http://th1.free.fr/test.jpg
 
Les deux images situés dans la partie blanche, sous la boîte jaune, j'aimerais qu'elles se retrouvent dans la boîte jaune, à côté de celle déjà existante.
Ces trois images de la table upload ont le même id_liaison qui est égale à l'id du texte situé dans la boîte jaune.  :pt1cable:  
J'ai mis des flèches violette ....  :)

mood
Publicité
Posté le 15-10-2009 à 18:05:01  profilanswer
 

n°1932211
pataluc
Posté le 15-10-2009 à 19:16:42  profilanswer
 

ah mais tu es déja dans un tableau... dans ces cas la, tu vire les lignes 1, 4 à 10 et 20 qui ne me semblent servir à rien.

 

(ou alors, c'est qu'il y a des morceaux de code que tu n'as pas posté)

Message cité 1 fois
Message édité par pataluc le 15-10-2009 à 19:18:07
n°1932747
t671
Posté le 17-10-2009 à 16:10:33  profilanswer
 

pataluc a écrit :

ah mais tu es déja dans un tableau... dans ces cas la, tu vire les lignes 1, 4 à 10 et 20 qui ne me semblent servir à rien.
 
(ou alors, c'est qu'il y a des morceaux de code que tu n'as pas posté)


 
Ben là, j'ai plus rien ..... Non, c'est pas la bonne solution !!!!!
 
Je pense que cela vient de la mise en page, ou du if ($idEnCours = $row['id_liaison']);  
J'ai essayé de remplacer le if par while (boucle imbriquée), mais le script rame et ne m'affiche rien.  
Quoique je fasse, soit le texte s'affiche autant de fois qu'il y a d'éléments associés dans upload avec ces derniers, soit à partir du 2° élément (répétition après la 1° boucle), ceux-ci s'affichent dessous ....  :cry:  
 

n°1932759
t671
Posté le 17-10-2009 à 16:55:35  profilanswer
 

C'est bon !!!!! J'ai réussi ..........    :bounce:  
Virré toutes les balises et rajouté au fur et à mesure .....  :pt1cable:    :hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  affichage bases join table mysql

 

Sujets relatifs
Prob PHP / MySQLupdate mysql par lignes d'un tableau
Structures, pointeurs..affichage?probleme d'affichage de mon site web
Mise à jour d'une table en JSPConseil / aide pour connection mysql et ASP
modification script php/mysqlPb d'affichage d'un site sous IE6
surveiller les requêtes ou tables modifiées sur MySQL[Résolu] Choix d'un schéma d'une table
Plus de sujets relatifs à : affichage bases join table mysql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR