affichage bases join table mysql

affichage bases join table mysql - PHP - Programmation

Marsh Posté le 15-10-2009 à 16:48:33    

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.

Reply

Marsh Posté le 15-10-2009 à 16:48:33   

Reply

Marsh Posté le 15-10-2009 à 17:02:12    

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

Reply

Marsh Posté le 15-10-2009 à 17:10:03    

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() );

Reply

Marsh Posté le 15-10-2009 à 17:14:39    

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.

Reply

Marsh Posté le 15-10-2009 à 17:28:48    

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 ....  :(

Reply

Marsh Posté le 15-10-2009 à 17:36:47    

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)

Reply

Marsh Posté le 15-10-2009 à 17:39:25    

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
Reply

Marsh Posté le 15-10-2009 à 17:48:48    

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 ....

Reply

Marsh Posté le 15-10-2009 à 17:53:29    

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?

Reply

Marsh Posté le 15-10-2009 à 18:05:01    

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 ....  :)

Reply

Marsh Posté le 15-10-2009 à 18:05:01   

Reply

Marsh Posté le 15-10-2009 à 19:16:42    

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
Reply

Marsh Posté le 17-10-2009 à 16:10:33    

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:  
 

Reply

Marsh Posté le 17-10-2009 à 16:55:35    

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed