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

  FORUM HardWare.fr
  Programmation
  PHP

  Séparer un resultat de requete sur 3 colonnes egales

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Séparer un resultat de requete sur 3 colonnes egales

n°1362521
nycius
Ich liebe dich !
Posté le 09-05-2006 à 16:04:29  profilanswer
 

Salut
 
J'ai une requete qui me sort des resultats par ordre Alpha
seulement j'aimerai qu'ils soient repartis sur 3 colonnes de facon egale et tj en ordre alpha
 
qqun aurait un tuto ?

mood
Publicité
Posté le 09-05-2006 à 16:04:29  profilanswer
 

n°1362571
anapajari
s/travail/glanding on hfr/gs;
Posté le 09-05-2006 à 16:40:37  profilanswer
 

Bin tu sais déjà afficher sur un colonne?
Après a toi de choisir si tu veux remplir ligne à ligne ( donc tout les modulo 3 tu en créés une nouvelle ( voir doc sur modulo) comme la:

A B C
D E F


ou colonne par colonne

A C E
B D F


auquel cas tu fais pareil mais tu detecte le changement "de tiers" sur ton tableau

n°1362582
nycius
Ich liebe dich !
Posté le 09-05-2006 à 16:51:19  profilanswer
 

sur une colonne aucuns soucis
mais c lui dire de separer sur 3 colonne le nombre global

n°1362588
nycius
Ich liebe dich !
Posté le 09-05-2006 à 16:55:59  profilanswer
 

Code :
  1. $sql = "SELECT DISTINCT(category) as category FROM `".$config_databaseTablePrefix."products` ORDER by category";
  2.   if (database_querySelect($sql,$rows))
  3.   {       
  4.     $currentLetter = "";
  5.    
  6.     foreach($rows as $row)
  7.     {
  8.       $firstLetter = strtoupper(substr($row["category"],0,1));
  9.      
  10.       if ($firstLetter <> $currentLetter)
  11.       {
  12.         print "<span style='padding-top:10px;padding-bottom:10px'><b>".$firstLetter."</b></span><br>";
  13.        
  14.         $currentLetter = $firstLetter;
  15.       }
  16.      
  17.       if ($config_useRewrite)
  18.       {
  19.         $categoryHREF = "/category/".str_replace(" ","-",$row["category"])."/";
  20.       }
  21.       else
  22.       {
  23.         $categoryHREF = "search.php?q=category:".urlencode($row["category"]).":";
  24.       }
  25.      
  26.       print "<a title='".$row["category"]."' href='".$categoryHREF."'>".$row["category"]."</a> <span style='color:#666666;font-size:10px'>(".cfg_compte($row["category"])." )</span><br>";
  27.     }
  28.   }


 
c'est ce bout de code que j'aimerai passer en 3 colonnes

n°1362725
stef_dober​mann
Personne n'est parfait ...
Posté le 09-05-2006 à 19:10:02  profilanswer
 

Salut,
 
il y a aussi une autre solution qui consiste à utiliser une for pour chaque colonne, je développe :

Code :
  1. $query = "select .....";
  2. $result = mysql_query($query);
  3. echo "<table>"; //commence le tableau
  4. while (1) { //ATTETION BOUCLE INFINIE !!!!
  5.     echo "<tr>"; //commence une ligne
  6.     for ($i=0;$i<=3;$i++) {
  7.         if ( $row = mysql_fetech_array($result) ) {
  8.             echo "<td>$row["champs"]</td>";//si il y a une lettres
  9.         } else {
  10.             echo "<td>&nbsp;</td>";//pour finir proprement le tableau
  11.         }
  12.     }
  13.      echo "</tr>";//termine la ligne
  14.     }
  15. //pour controle de sortie de la boucle infinie
  16. if ( $i >= mysql_num_rows($result) ){break;}
  17. }
  18. echo "</table>"; //fini le tableau


 
voila ce que j'ai pu utiliser pour certain site. Je viens de le refaire par mes souvenir, veuillez m'excuser pour les éventuelles erreurs de code !


---------------
Tout à commencé par un rêve...
n°1362726
stef_dober​mann
Personne n'est parfait ...
Posté le 09-05-2006 à 19:10:42  profilanswer
 

ensuite à toi de comprendre et de l'adapter en fonction de ton besoin :)


---------------
Tout à commencé par un rêve...
n°1362900
nycius
Ich liebe dich !
Posté le 09-05-2006 à 23:25:09  profilanswer
 

ca ne marche pas c

n°1363042
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-05-2006 à 10:38:08  profilanswer
 

tiens les deux méthodes dont je te parlais appliquer à un tableau "lambda", tu n'as plus qu'a faire pareil avec le retour de ta requete et à ta présentation:

Code :
  1. <?php
  2. $arr = array('A','B','C','D','E','F','G','H','I','J','K');
  3. /*** 1st method: row by row ***/
  4. $res = array();
  5. $row = array();
  6. print "\n1st method:\n";
  7. for($i=0; $i< count($arr) + 3 - count($arr)%3;$i++){
  8.    if($i<count($arr)){
  9.      $res[intval($i/3)][$i%3] = $arr[$i];
  10.    } else {
  11.      $res[intval($i/3)][$i%3] = '_';
  12.    }
  13. }
  14. var_export($res);
  15. /*** 2nd method: col by col ***/
  16. $res=array();
  17. $row = array();
  18. print "\n\n2nd method:\n";
  19. for($i=0; $i<count($arr) + 3 -count($arr)%3;$i++){
  20.    if ($i<count($arr)){
  21.      $res[$i%(intval(count($arr)/3)+1)][] = $arr[$i];
  22.    } else {
  23.      $res[$i%(intval(count($arr)/3)+1)][] = '_';
  24.    }
  25. }
  26. var_export($res);
  27. ?>


 

n°1363742
stef_dober​mann
Personne n'est parfait ...
Posté le 10-05-2006 à 19:21:43  profilanswer
 

ma méthode, sur qu'elle fonctionne, je l'utilise sur l'un de mes site ;)


---------------
Tout à commencé par un rêve...
n°1363868
nycius
Ich liebe dich !
Posté le 10-05-2006 à 23:16:41  profilanswer
 

Non car moi je cherche pas :  
* 3 colonnes - n lignes  
mais  
* 1 lignes avec 3 colonnes

mood
Publicité
Posté le 10-05-2006 à 23:16:41  profilanswer
 

n°1364007
stef_dober​mann
Personne n'est parfait ...
Posté le 11-05-2006 à 10:31:43  profilanswer
 

alors j'ai pas du comprendre :
le script que je t'ai écris sort une liste sur 3 colonne avec X ligne
style :  
 A B C
 D E F
 G H I
 J K L
 M N O
 P Q R
 S T U
 V W X
 Y Z


---------------
Tout à commencé par un rêve...
n°1364009
stef_dober​mann
Personne n'est parfait ...
Posté le 11-05-2006 à 10:33:27  profilanswer
 

stef_dobermann a écrit :

alors j'ai pas du comprendre :
le script que je t'ai écris sort une liste sur 3 colonne avec X ligne
style :  
 A B C
 D E F
 G H I
 J K L
 M N O
 P Q R
 S T U
 V W X
 Y Z


 
et toi tu les voudrais ca :
 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
 
c'est bien ca :??:
 
si oui, il n'y a rien de plus simple ;)


---------------
Tout à commencé par un rêve...

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

  Séparer un resultat de requete sur 3 colonnes egales

 

Sujets relatifs
[PHP] Pb de naviguation entre resultat d'une requetePRO*C : passage de parametres dans une requete
afficher un resultat en fonction de deux donnéesComboBox et requète paramétrée
problème requèteProblème de requête : Valeurs NULL et par défaut
Séparer une exception en deuxtableau array remplie a l'aide d'une requete en javascript
Requête PHP MySQL 
Plus de sujets relatifs à : Séparer un resultat de requete sur 3 colonnes egales


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