affichage par colonne

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : affichage par colonne

par sadeq » 23 mai 2005, 16:25

tu ne vas pas tout de même afficher toutes les photos de la base de données en colonnes (td) ? si t'as 100 photos tu auras 100 colonnes dans ta table.

Je te préconise de créer une table qui affiche tes photos à raison de N colonnes par ligne. Et dans chaque céllule la photo est affichée avec le détail de sa description dans une sous-table.

Pour ça t'as besoin de compter les enregistrements ($i) et de sauter à la ligne si un lot d'enregistrements multiple du nombre de colonnes à afficher est atteint.

Dans cet exemple, tes photos sont affichées par lot de 5 colonnes (5 photos par ligne) et chaque céllule photo contient à la fois la photo et son détail sous forme de sous-table:
$nbCol = 5;
$i=0;
echo "<table>";
while($row = mysql_fetch_array($result)) { 

//Saut à la ligne si $i est multiple de $nbCol
if ( $i % $nbCol == 0)  echo '<tr>'; 

echo '<td>'; //début d'une céllule contenant une sous-table
echo '<table><tr bgcolor="#feffb7"><td><span class="text">'.$row["cuvees_nom"].'</span></td></tr>'; 

echo '<tr bgcolor="#feffb7"><td><span class="text">'.$row["cuvees_annee"].'</span></td></tr>'; 

echo '<tr bgcolor="#feffb7"><td><span class="texte"></span></td></tr>'; 

echo '<tr bgcolor="#feffb7"><td><span class="text">'.$row["cuvees_commentaires"].'</span></td></tr>'; 

echo '<tr bgcolor="#feffb7"><td><span class="texte"></span></td></tr>'; 

echo '<tr height="42" rowspan="3" bgcolor="#feffb7"><td><span class="link"><a href=\'javascript:popup("cuvees_seule.php?id='. $row["id_cuvees"] .'")\'><img src="miniaturisation/'.$row["cuvees_image"].'"></span></td></tr>'; 

echo '</table></td>'; //fin de sous-table par céllule
$i++;
} 
echo '</table>'; 

par yohkun » 23 mai 2005, 15:54

Merci bcp...

je veux faire une galerie horizontale avec photos et description.

par zeus » 23 mai 2005, 15:52

Bien sûr que si c'est possible !!

Même si plus compliqué et que je ne vois pas l'intérêt !!!

Tu rempli un tableau à 2 dimensions ($tab[$champ][$i]) puis quand tu construit ton tableau, tu fait 2 boucles imbriquées qui parcours par colonnes et non par lignes:
<table>
<?php
for($i; $i < nbcolonne; $i++) {
  echo "<tr>";
  for ($j ; $j < nblignes; $j++) {
    echo "<td>".$tab[$j][$i]."</td>";
  }
  echo "</tr>";
}
?>
<table>

par yohkun » 23 mai 2005, 15:52

OUI tout à fait c bien sa Zeus!!!!

par zeus » 23 mai 2005, 15:48

D'après ce que j'avais compris, ca serait :
1 champs par colonne !!

Au lieu d'afficher un enregistrement par ligne, ça serait un enregistrement par colonne.

A confirmer par le principal intéressé

par yohkun » 23 mai 2005, 15:48

LOL je m'excuse pour mon incompétence dans le domaine, je ne vais pas dire le contraire... Le fait que je déraille me paraissant tout à fait plausible étant donné mon niveau...

Mais en fait ce que j'aurais voulu c afficher les enregistrements par colonne et les champs par ligne, je sais c un peu bizarre mais bon... sa n'a pas l'air possible alors...

Merci pour ces réponses si enrichissantes...

par albat » 23 mai 2005, 15:42

il faut écrire :
echo '<td bgcolor="#feffb7"><span class="text">'.$row["cuvees_nom"].'</td></span>';
Hum... [-X
Les <span> à l'intérieur des <td>, grand distrait !

À part ça, étant donné qu'une requête retourne son résultat ligne après ligne (= enregistrement),
je ne vois pas ce que peut signifier "un affichage en colonne".

par sadeq » 23 mai 2005, 15:38

Non non albat t'es bien réveillé, c'est yohkun qui déraille.
Ton code yohkun est faux, selon ce que tu veux faire.
Pour afficher les enregistrement en lignes et les champs en colonnes comme le commun des mortels il faut écrire :
while($row = mysql_fetch_array($result)) { 

echo '<tr>'; 

echo '<td bgcolor="#feffb7"><span class="text">'.$row["cuvees_nom"].'</span></td>'; 

..... 

echo '</tr>'; 

} 
NOTA: en HTML :
1. il faut utiliser <tr> pour créer une ligne et <td> pour créer une colonne de <table>
2. un span ou un div doit être fermé sans chovochement d'imbrication avec des balises conteneurs

------------------------------------------------------------------
Révisez vos leçons

par albat » 23 mai 2005, 15:33

Sans oublier que les <tr> (qui devraient donc être des <td>)
et les <span> sont alternés au lieu d'être imbriqués.

C'est donc blond aussi, un magohamoth ? :shock:
J'aurais pas cru...

par Cyrano » 23 mai 2005, 15:28

D'abord je te signale que tu as inversé les <td> et <tr>, ce sont les <td> qu'on trouve dans les <tr> et non l'inverse.

Ensuite, je suis comme albat, j'ai pas vraiment saisi le but recherché ?

par albat » 23 mai 2005, 15:28

Je dois être l'unique mammouth blond que la terre ait porté, mais je comprends toujours pas... :lol:

par zeus » 23 mai 2005, 15:26

tu rempli un tableau à 2 dimensions et tu affiches le tableau par colonnes au lien de par ligne !!!

par albat » 23 mai 2005, 15:23

P't-être que j'suis pas bien frais aujourd'hui, mais j'ai pô compris ce que tu veux faire. :-s

affichage par colonne

par yohkun » 23 mai 2005, 15:21

Bonjour à tous,

je cherche à afficher dans un tableau les enregistrements d'une base de données non pas par ligne mais pas colonne.

Voici mon code de trie par ligne:

while($row = mysql_fetch_array($result)) {


echo '<td>';

echo '<tr bgcolor="#feffb7"><span class="text">'.$row["cuvees_nom"].'</tr></span>';


echo '<tr bgcolor="#feffb7"><span class="text">'.$row["cuvees_annee"].'</tr></span>';


echo '<tr bgcolor="#feffb7"><span class="texte"></tr></span>';

echo '<tr bgcolor="#feffb7"><span class="text">'.$row["cuvees_commentaires"].'</tr></span>';


echo '<tr bgcolor="#feffb7"><span class="texte"></tr></span>';

echo '<tr height="42" rowspan="3" bgcolor="#feffb7"><span class="link"><a href=\'javascript:popup("cuvees_seule.php?id='. $row["id_cuvees"] .'")\'><img src="miniaturisation/'.$row["cuvees_image"].'"></tr>';

echo '</td>';

}

Merci d'avance...