affichage par colonne

yohkun
Invité n'ayant pas de compte PHPfrance

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

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 mai 2005, 15:26

tu rempli un tableau à 2 dimensions et tu affiches le tableau par colonnes au lien de par ligne !!!
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

23 mai 2005, 15:28

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

Mammouth du PHP | 19672 Messages

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é ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

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

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

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
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

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

Petit nouveau ! | 3 Messages

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

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é
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 3 Messages

23 mai 2005, 15:52

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

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>
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 3 Messages

23 mai 2005, 15:54

Merci bcp...

je veux faire une galerie horizontale avec photos et description.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

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>'; 
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène