Foros del Web » Programando para Internet » PHP »

Imprimir consulta MySQL en columnas de orden alfabético contiguo

Estas en el tema de Imprimir consulta MySQL en columnas de orden alfabético contiguo en el foro de PHP en Foros del Web. Estimados... Utilizo desde hace bastante tiempo este código, con el cual imprimo una consulta MySQL en columnas: Código PHP: $col  =  0 ; echo  "<table width=\"100%\"><tr>" ...
  #1 (permalink)  
Antiguo 03/07/2017, 05:48
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Imprimir consulta MySQL en columnas de orden alfabético contiguo

Estimados...

Utilizo desde hace bastante tiempo este código, con el cual imprimo una consulta MySQL en columnas:

Código PHP:
$col 0;
echo 
"<table width=\"100%\"><tr>";
while(
$row mysql_fetch_array($resultado)){
    
$col++;
    echo 
"<td>{$row['campo']}</td>";
    if(
$col == 2){
        
$col=0;
        echo 
"</tr><tr>";
    }

echo 
"</tr></table>"
Pero resulta que ahora necesito imprimir una consulta en orden alfabetico (cosa que antes no necesitaba), y no puedo solucionar o no me doy cuenta cómo hacer, que me imprima en columnas de orden alfabético contiguo, ya que por ejemplo el resultado de 5 filas a 2 columnas, me lo imprime de la siguiente manera:

Código HTML:
Duro        Wiesen
Ostras      Wladika
Zancos
Y necesito que imprima de esta manera:

Código HTML:
Duro        Wladika
Ostras      Zancos
Wiesen
La consulta MySQL está hecha sin ORDER BY, y utilizándolo tampoco da solución.

Por favor, ¿alguien puede ayudarme u orientarme, si es que se puede, para solucionar esto?

Gracias!!!
  #2 (permalink)  
Antiguo 03/07/2017, 05:51
Avatar de baldaweb  
Fecha de Ingreso: septiembre-2010
Ubicación: Barco pirata
Mensajes: 244
Antigüedad: 13 años, 7 meses
Puntos: 20
Respuesta: Imprimir consulta MySQL en columnas de orden alfabético contiguo

Debería de funcionar con order by, pon la consulta a ver como la tienes.
__________________
CHOOO COOO LAAA TEEEEEEEEE
  #3 (permalink)  
Antiguo 03/07/2017, 06:07
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Imprimir consulta MySQL en columnas de orden alfabético contiguo

Hola baldaweb...

La consulta la tengo así:

Código PHP:
$query "SELECT DISTINCT campo FROM basedatos" 
Si le pongo "orden by campo", me lo imprime así:

Código HTML:
Duro        Ostras
Wiesen      Wladika
Zancos
  #4 (permalink)  
Antiguo 03/07/2017, 06:14
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Imprimir consulta MySQL en columnas de orden alfabético contiguo

Cita:
Iniciado por paulkees Ver Mensaje
Hola baldaweb...

La consulta la tengo así:

Código PHP:
$query "SELECT DISTINCT campo FROM basedatos" 
Si le pongo "orden by campo", me lo imprime así:

Código HTML:
Duro        Ostras
Wiesen      Wladika
Zancos

Pues esa seria la respuesta correcta ya que esta realizando el orden alfabetico basado en el orden de las columnas que indicas, lo que puedes hacer es imprimir varias tablas de una sola columnas y luego asignarle un float left al llegar por ejemplo a 20 lineas
__________________
[email protected]
HITCEL
  #5 (permalink)  
Antiguo 03/07/2017, 06:26
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Imprimir consulta MySQL en columnas de orden alfabético contiguo

Hola xfxstudios...

No entiendo muy bien, yo estoy haciendo la consulta MySQL a una sola columna (campo) de la Base de Datos, e intentando imprimir el resultado a 2 colunas, o a 3 , o a 4 colunas según me convenga.
  #6 (permalink)  
Antiguo 03/07/2017, 06:33
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Imprimir consulta MySQL en columnas de orden alfabético contiguo

no lo estas haciendo como muestras en tu propio coedigo:
Código PHP:
Ver original
  1. $col = 0;
  2. echo "<table width=\"100%\"><tr>";
  3. while($row = mysql_fetch_array($resultado)){
  4.     $col++;
  5.     echo "<td>{$row['campo']}</td>";
  6.     if($col == 2){ //EN ESTA SENTENCIA INDICASD QUE AL LLEGAR A LA SEGUNDA COLUMNA INICIE OTRA FILA
  7.         $col=0;
  8.         echo "</tr><tr>";
  9.     }
  10. }  
  11. echo "</tr></table>";

como puedes apreciar si ordenas alfabeticamente de esa manera ira de esta forma:

A(1)-B(2)
C(1)-D(2)
E(1)-F(2)...etc

Lo que quieres es
A-F
B-G
C-H
D-I
E-J

y de esa forma no lo vas a lograr
__________________
[email protected]
HITCEL
  #7 (permalink)  
Antiguo 03/07/2017, 06:44
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Imprimir consulta MySQL en columnas de orden alfabético contiguo

Por favor, y cómo se puede lograr el orden de esta forma:

A-F
B-G
C-H
D-I
E-J
  #8 (permalink)  
Antiguo 03/07/2017, 06:57
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Imprimir consulta MySQL en columnas de orden alfabético contiguo

Mira este ejemplo:
Código CSS:
Ver original
  1. table{
  2.     float: left;
  3. }
Código PHP:
Ver original
  1. $data = array('A','B','C','D','E','F','G','H','I','J','K','L','LL','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
  2.  
  3. echo "<table>";
  4. $con=0;
  5. $col=0;
  6. foreach ($data as $key => $value) {
  7.     echo "<tr>";
  8.     echo "<td>".$data[$con]."</td>";
  9.     echo "</tr>";
  10. $con++;
  11. $col++;
  12.     if($col==10){
  13.         echo "</table><table>";
  14.         $col=0;
  15.     }
  16. }
  17. echo "</table>";
A K T
B L U
C LL V
D M W
E N X
F O Y
G P Z
W Q
I R
J S
__________________
[email protected]
HITCEL
  #9 (permalink)  
Antiguo 03/07/2017, 17:58
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Imprimir consulta MySQL en columnas de orden alfabético contiguo

Muchas gracias xfxstudios por la enseñanza...

Me ha quedado así y funciona:

Código PHP:
echo "<table class=\"table\">";
$con=0;
$col=0;
while(
$row mysql_fetch_array($resultado)){
    
$data[] = $row['campo'];    
}
foreach (
$data as $key => $value) {
    echo 
"<tr>";
    echo 
"<td>".$data[$con]."</td>";
    echo 
"</tr>";
    
$con++;
    
$col++;
    if(
$col == 10){ //Cantidad de registros por columna
        
echo "</table><table class=\"table\">";
        
$col=0;
    }
}
echo 
"</table>"
Solo faltaría ver como hacer para que la cantidad de registros por columna, lo maneje de forma automática.
De lo contrario, hay que estar atento ya que si son muchos registros, la tabla se agranda en ancho y NO en altura... pero no estoy seguro.
  #10 (permalink)  
Antiguo 04/07/2017, 09:47
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Imprimir consulta MySQL en columnas de orden alfabético contiguo

Podrías contar cuantos registros hay en tu array con count y luego realiza una división de estos para que te de mas o menos cuantos registros deberían de haber por columna.
__________________
[email protected]
HITCEL

Etiquetas: columnas, mysql, orden
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:07.