affichage en 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 en colonne

par mark » 04 mars 2006, 09:16

:D ça marche, merci pour l'aide.

par Ryle » 04 mars 2006, 01:05

Le plus simple c'est de faire un tableau contenant toutes tes entêtes (dans le même ordre que tes champs) et de l'interroger en début de ligne dans le premier for
$tabTitre = array("Id", "Référence", "Couleur", ... );

for($i=0; $i<count($tabTitre); $i++) { // parcours le tableau horizontalement 
  echo '<tr>'; 
  echo '<th>'.$tabTitre[$i].'</th>'; // affiche le titre de la ligne
  for($j=0; $j<count($tab); $j++) { // pour chaque colonne : parcours le tableau verticalement 
    echo '<td>' . $tab[$j][$i] . '</td>'; // affiche à la suite les valeurs de la colonne 
  } 
  echo '<tr>'; 
} 
J'en ai profité pour remplacer le count($tab[0]) du premier for par un count($tabTitre) qui est plus propre si jamais ta requête ne ramène pas de résultat ;)

par mark » 03 mars 2006, 20:41

:D ça marche, mais une derniere question je peut mettre ou les entete de ligne (1ere colonne) avec mon texte fixe du genre id-article ect... :shock:

par Ryle » 03 mars 2006, 20:29

Oops... il manque un j++ dans le deuxième for :)
for($i=0; $i<count($tab[0]); $i++) { // parcours le tableau horizontalement 
  echo '<tr>'; 
  for($j=0; $j<count($tab); $j++) { // pour chaque colonne : parcours le tableau vertivalement 
    echo '<td>' . $tab[$j][$i] . '</td>'; // affiche à la suite les valeurs de la colonne 
  } 
  echo '<tr>'; 
} 

par mark » 03 mars 2006, 20:14

j'ai testé mais j'ai une erreur de syntax, j'ai modifié comme ça :
for($i = 0; $i < count($tab[0]); $i++) { // parcours le tableau horizontalement
  echo '<tr>';
  
}
for($j = 0; $j < count($tab); ) { // pour chaque colonne : parcours le tableau vertivalement
  echo '<td>' . $tab[$j][$i] . '</td>'; // affiche à la suite les valeurs de la colonne
  }
j'ai plus d'erreur, mais rien s'affiche ? erreur de syntax ?

par Ryle » 03 mars 2006, 12:52

Les tableaux html s'écrivant dans le sens de lecture (donc par ligne) tu n'as pas vraiment le choix si tu veux le faire en colonne, il te faux quand même les composer ligne par ligne.

Pour cela il faut que tu stockes le résultat de ta requête dans un tableau php à deux dimensions :

Code : Tout sélectionner

id1 | ref1 | couleur1 id2 | ref2 | couleur2 id3 | ref3 | couleur3
while($row = mysql_fetch_array($result))  {
  $tab[] = array($row['id-article'] , $row['ref'], ...); 
}
Une fois ton tableau généré, tu peux alors constituer celui en html en bouclant sur chaque colone :
for($i=0; $i<count($tab[0]); $i++) { // parcours le tableau horizontalement
  echo '<tr>';
  for($j=0; $j<count($tab) { // pour chaque colonne : parcours le tableau vertivalement
    echo '<td>' . $tab[$j][$i] . '</td>'; // affiche à la suite les valeurs de la colonne
  }
  echo '<tr>';
}
Et tu obtiens ainsi un tableau html :

Code : Tout sélectionner

<tr><td>id1 </td><td> id2 </td><td> id3 </td></tr> <tr><td>ref1 </td><td> ref2 </td><td> ref3 </td></tr> <tr><td>couleur1 </td><td> couleur2 </td><td> couleur3 </td></tr>

par Invité » 03 mars 2006, 12:21

merci pour l'aide, voila mon code:
<?php  
$nom = isset($_POST['id-article']) ? $_POST['id-article'] : ""; 
if(!empty($nom)) 
{ 
    $nb = count($nom); 
} 
$clauses = array(); 
for($i = 0; $i < $nb; $i++) 
{ 
    $clauses[] = . $nom[$i]; 
} 
$where = implode(" OR ", $clauses); 
$sql = . 
"WHERE ". $where .";"; 
?> 

<? $result = mysql_query("SELECT * FROM article WHERE id-article = '". $where ."'" ); ?> 

<table> 
  <tr> 
    <th>id-article</th> 
    <th>ref</th> 
    <th>couleur</th> 
  </tr> 
<?php 
    while($row = mysql_fetch_array($result)) 
    { 
?> 
  <tr> 
    <td><?php echo($_SESSION[$row['id-article']]); ?></td> 
    <td><?php echo($_SESSION[$row['ref']]); ?></td> 
    <td><?php echo($_SESSION[$row['couleur']]); ?></td> 
  </tr> 
<?php 
    } 
?> 
</table> 

par Cyrano » 03 mars 2006, 11:30

Ce n'est pas infaisable, mais tu vas peut-être avoir besoin de stocker les résultats dans un tableau indexé pour reprendre ensuite les informations dans un ordre différent.

Fais donc voir les bouts de code que tu as commencé à faire.

par Hermès » 03 mars 2006, 10:44

Pourquoi ne fais tu pas simplement un tableau html ?
J'ai l'impression de pas comprendre la question en fait =)

Dans tous les cas, le HTML ne permet pas la construction d'un tableau colonne par colonne mais uniquement ligne par ligne.

affichage en colonne

par mark » 03 mars 2006, 10:09

bonjour, j'appel à un peut d'aide car je débute en php et je séche, voilà ce que je cherche a faire: je voudrait afficher mes résultats en colonne et non en ligne, mon principal pb c'est que je ne souhaite répéter a chaque fois nom, nom2 ect pour chaque article. je pense que c'est pas simple car une variable ne s'affiche pas sur une ligne obligatoirement.

Code : Tout sélectionner

----------------------------------------- : resultat 1 : resultat 2 : --------------------------------------------------- : nom : variable1de1 : variable1de2 : --------------------------------------------------- : nom2 : variable2de1 : variable2de2 : : : suite variable2de1 : : --------------------------------------------------- : nom3 : variable3de1 : variable3de2 : --------------------------------------------------- .....
je sais pas si je suis clair dans mes explication (pas terrible le tableau je sais !!!) ? :oops:
merci d'avance pour votre aide.