Foros del Web » Programando para Internet » PHP »

ordenar dos columnas

Estas en el tema de ordenar dos columnas en el foro de PHP en Foros del Web. estimado tengo este problemilla respecto a una consulta es la misma tabla pero quiero ordenar por decir: tengo los campos : nombre lugar centro area ...
  #1 (permalink)  
Antiguo 18/11/2009, 08:50
Avatar de pedroca  
Fecha de Ingreso: julio-2009
Mensajes: 97
Antigüedad: 14 años, 9 meses
Puntos: 0
ordenar dos columnas

estimado tengo este problemilla respecto a una consulta es la misma tabla pero quiero ordenar por decir:
tengo los campos :
nombre lugar centro area
y lo que quiero ordenar primero por centro y dentro de esa ordenacion me los ordene por nombre de la A-Z lo puedo ordenar por centro pero no me sale la ordenacion por nombre nose si me dejo entender .
gracias de antemano por la ayuda ....
  #2 (permalink)  
Antiguo 18/11/2009, 08:57
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 16 años, 1 mes
Puntos: 23
Respuesta: ordenar dos columnas

Creo (solo es un creer no te fies mucho ), que es con esta SQL:

Código sql:
Ver original
  1. SELECT * FROM Libros ORDER BY nombre_libro ASC

No lo se muy bien, ya que solamente busqué un poquito y ya está

Saludos y suerte.
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #3 (permalink)  
Antiguo 18/11/2009, 09:01
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: ordenar dos columnas

Puedes añadir tantas ordenaciones como quieras, fijate:

Select * from tabla order by campo ASC,campo2 DESC,campo3 ASC


ASC: orden ascendente, de 1 a 100, o de A a Z...
DESC: orden descendente
  #4 (permalink)  
Antiguo 18/11/2009, 09:01
Avatar de dcreate  
Fecha de Ingreso: octubre-2009
Ubicación: Veracruz
Mensajes: 536
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: ordenar dos columnas

pues nadamas tienes que agregar el order by, mira:


Código php:
Ver original
  1. mysql_query("SELECT * FROM tabla ORDER BY campo1 ASC, campo2 ASC, campo3 ASC");


espero y te sirva
  #5 (permalink)  
Antiguo 18/11/2009, 09:32
Avatar de pedroca  
Fecha de Ingreso: julio-2009
Mensajes: 97
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: ordenar dos columnas

creo que le pele en el titulo el cual tendria que ser agrupar y odenar dos columnas ahora hablando de agrupar me los repite y no me muestra un solo centro y ahi dentro estan todos los que pertenecen a ese centro creo que ahora esta mas claro lo que quiero es que no se repita los centros que solo me lo muestre una sola vez y ah adentro me los ordene de A-Z los que integran ese centro
gracias nuevamente
  #6 (permalink)  
Antiguo 18/11/2009, 10:04
Avatar de pedroca  
Fecha de Ingreso: julio-2009
Mensajes: 97
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: ordenar dos columnas

perfecto funciono lo que me pasaron GRACIAS, pero como hago para que no me repita los de la columna centro y me muestre solo una vez con todos sus integrantes
  #7 (permalink)  
Antiguo 18/11/2009, 10:43
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: ordenar dos columnas

¿podrias hacer una captura de pantalla del resultado del SELECT con todos los registros y lo que quieres? asi te podremos ayudar directamente
  #8 (permalink)  
Antiguo 18/11/2009, 11:36
Avatar de pedroca  
Fecha de Ingreso: julio-2009
Mensajes: 97
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: ordenar dos columnas

Cita:
Iniciado por Vun Ver Mensaje
¿podrias hacer una captura de pantalla del resultado del SELECT con todos los registros y lo que quieres? asi te podremos ayudar directamente
claro mira ocurre esto:
NOMBRE DNI CENTRO AREA
jose 232 pet fria
mari 325 pet fria
diego 123 pet caliente
juana 653 pet caliente
sergio 124 soda caliente
mani 863 soda caliente
federico 153 soda fria
javier 742 bot solida
angel 680 bot solida
leo 736 bot solida

mis columnas por decir esta asi y quiero que en el campo CENTRO no se repitan y solo aparesca una sola vez y dentro de el ordenados todos los que integran ese centro nose si ahora queda claro y gracias por la preocupacion ....
  #9 (permalink)  
Antiguo 18/11/2009, 11:46
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: ordenar dos columnas

A ver si lo entendi bien.....

Tu quieres que en la web se muestre algo tal que:

PET
-----
jose 232 fria
mari 325 fria
diego 123 caliente
juana 653 cailente

SODA
-------
Sergio 124 caliente
mani 863 caliente
.
.
.
.
.


¿asi dices? Eso seria ya trabajando con PHP el recorrido de los registros, dime si estoy equivocado o no
  #10 (permalink)  
Antiguo 18/11/2009, 16:35
Avatar de pedroca  
Fecha de Ingreso: julio-2009
Mensajes: 97
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: ordenar dos columnas

Cita:
Iniciado por Vun Ver Mensaje
A ver si lo entendi bien.....

Tu quieres que en la web se muestre algo tal que:

PET
-----
jose 232 fria
mari 325 fria
diego 123 caliente
juana 653 cailente

SODA
-------
Sergio 124 caliente
mani 863 caliente
.
.
.
.
.


¿asi dices? Eso seria ya trabajando con PHP el recorrido de los registros, dime si estoy equivocado o no

si estimado eso seria tienes razon como podria hacerlo si puedes ayudarme te lo agradeceria mucho ....
  #11 (permalink)  
Antiguo 18/11/2009, 16:50
 
Fecha de Ingreso: junio-2006
Ubicación: Antofagasta
Mensajes: 216
Antigüedad: 17 años, 10 meses
Puntos: 7
Respuesta: ordenar dos columnas

justamento yo necesito hacer lo mismo...
alguna idea?
  #12 (permalink)  
Antiguo 18/11/2009, 16:53
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: ordenar dos columnas

Bueno tu consulta Mysql deberia ser algo asi

Select * from tabla order by CENTRO ASC, NOMBRE ASC

Luego en el bucle donde recorras los registros con mysql_fetch_array() puedes tener una variable en la que preguntes si dicha variable es DISTINTO al CENTRO del registro, si es asi, la variable=CENTRO e imprimimos cabecera, espero me entiendas la idea, es jugar con PHP, variables y el bucle del SELECT
  #13 (permalink)  
Antiguo 19/11/2009, 12:43
Avatar de pedroca  
Fecha de Ingreso: julio-2009
Mensajes: 97
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: ordenar dos columnas

Cita:
Iniciado por Vun Ver Mensaje
Bueno tu consulta Mysql deberia ser algo asi

Select * from tabla order by CENTRO ASC, NOMBRE ASC

Luego en el bucle donde recorras los registros con mysql_fetch_array() puedes tener una variable en la que preguntes si dicha variable es DISTINTO al CENTRO del registro, si es asi, la variable=CENTRO e imprimimos cabecera, espero me entiendas la idea, es jugar con PHP, variables y el bucle del SELECT


disculpa Vun intente hacer lo que me indicas pero no me sale se me siguen repitiendo me puedes dar una ayudita si es posible con un ejemplo me sacarias de apuro gracias ...
  #14 (permalink)  
Antiguo 20/11/2009, 07:54
Avatar de pedroca  
Fecha de Ingreso: julio-2009
Mensajes: 97
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: ordenar dos columnas

estimado Vun este es mi codigo que tengo, donde tendria que colocar lo que me indicas:
$link=Conectarse();
$sql = "select sai, apellidos, nombres, cirun, ciudad, centro, cargo, observaciones from empleados order by centro ASC, apellidos ASC";
$result = mysql_query($sql, $link);
if ($row = mysql_fetch_array($result)){
mysql_field_seek($result,0);
while ($field = mysql_fetch_field($result)){
} do {

/*
Mostramos los registros para este ejemplo se esta utilizando HTML
*/
?>
<tr>
<td height="25"><?php echo $row[0]; ?></td>
<td><?php echo $row[1],' ',$row[2]; ?></td>
<td><?php echo $row[3]; ?></td>
<td valign="top"><?php echo $row[4]; ?></td>
<td valign="top"><?php echo $row[5]; ?></td>
<td valign="top"><?php echo $row[6]; ?></td>
<td valign="top"><?php echo $row[7]; ?></td>
</tr>
<?php
} while ($row = mysql_fetch_array($result));
} else {
/*
Si no se encontraron resultados
se muestra el siguiente mensaje
*/
echo "No se encontraron resultados!";
}
?>

te agradeceria mucho si puedes colaborarme con esto queme tiene trancado en este report...
  #15 (permalink)  
Antiguo 20/11/2009, 08:25
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: ordenar dos columnas

Bueno, fijate en la variable $centro lo que hago con ella, vamos comprobando si cambia el centro y mostrando una cabecera cada vez que cambia...



$link=Conectarse();
$sql = "select sai, apellidos, nombres, cirun, ciudad, centro, cargo, observaciones from empleados order by centro ASC, apellidos ASC";
$result = mysql_query($sql, $link);
if ($row = mysql_fetch_array($result)){
mysql_field_seek($result,0);
$centro="";
while ($field = mysql_fetch_field($result)){
} do {

if ($centro!=$row[5]) {
$centro=$row[5];
?>
<tr>
<td height="25" colspan="6">
<?=$centro?>
</td>
</tr>
<?
} // Fin if $centro=...


/*
Mostramos los registros para este ejemplo se esta utilizando HTML
*/
?>
<tr>
<td height="25"><?php echo $row[0]; ?></td>
<td><?php echo $row[1],' ',$row[2]; ?></td>
<td><?php echo $row[3]; ?></td>
<td valign="top"><?php echo $row[4]; ?></td>
<td valign="top"><?php echo $row[6]; ?></td>
<td valign="top"><?php echo $row[7]; ?></td>
</tr>
<?php
} while ($row = mysql_fetch_array($result));
} else {
/*
Si no se encontraron resultados
se muestra el siguiente mensaje
*/
echo "No se encontraron resultados!";
}
  #16 (permalink)  
Antiguo 20/11/2009, 09:42
Avatar de pedroca  
Fecha de Ingreso: julio-2009
Mensajes: 97
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: ordenar dos columnas

Cita:
Iniciado por Vun Ver Mensaje
Bueno, fijate en la variable $centro lo que hago con ella, vamos comprobando si cambia el centro y mostrando una cabecera cada vez que cambia...



$link=Conectarse();
$sql = "select sai, apellidos, nombres, cirun, ciudad, centro, cargo, observaciones from empleados order by centro ASC, apellidos ASC";
$result = mysql_query($sql, $link);
if ($row = mysql_fetch_array($result)){
mysql_field_seek($result,0);
$centro="";
while ($field = mysql_fetch_field($result)){
} do {

if ($centro!=$row[5]) {
$centro=$row[5];
?>
<tr>
<td height="25" colspan="6">
<?=$centro?>
</td>
</tr>
<?
} // Fin if $centro=...


/*
Mostramos los registros para este ejemplo se esta utilizando HTML
*/
?>
<tr>
<td height="25"><?php echo $row[0]; ?></td>
<td><?php echo $row[1],' ',$row[2]; ?></td>
<td><?php echo $row[3]; ?></td>
<td valign="top"><?php echo $row[4]; ?></td>
<td valign="top"><?php echo $row[6]; ?></td>
<td valign="top"><?php echo $row[7]; ?></td>
</tr>
<?php
} while ($row = mysql_fetch_array($result));
} else {
/*
Si no se encontraron resultados
se muestra el siguiente mensaje
*/
echo "No se encontraron resultados!";
}

gracias por la colaboracion pero en lugar de $row[5] tendria que ser $row[6] movi el encabezado del report pero nada no me da ni error y desaparece lo que tendria que mostrar cada centro:
te queria preguntar sobre el codigo claro que me das una explicacion pero algunas cositas no la comprendo por decir esto:
$centro=""; y esto <?=$centro?> o falta alguito para que no desaparesca como hace aurita y los muestre como deberia mostrarlo...
  #17 (permalink)  
Antiguo 20/11/2009, 12:37
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: ordenar dos columnas

no podrias hacer una captura de pantalla a ver que es lo que muestra?

$centro=""; es una forma de inicializar la variable, por si de antes viene con algun valor

<?=$centro?> es como escribir <? echo $centro; ?> , una forma resumida que suelo usar por comodidad

Prueba a poner <?php=$centro?> en vez de <?=$centro?>, quizas no tengas activado el short tag o como se llame en la configuracion php
  #18 (permalink)  
Antiguo 20/11/2009, 14:03
Avatar de pedroca  
Fecha de Ingreso: julio-2009
Mensajes: 97
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: ordenar dos columnas

Cita:
Iniciado por Vun Ver Mensaje
no podrias hacer una captura de pantalla a ver que es lo que muestra?

$centro=""; es una forma de inicializar la variable, por si de antes viene con algun valor

<?=$centro?> es como escribir <? echo $centro; ?> , una forma resumida que suelo usar por comodidad

Prueba a poner <?php=$centro?> en vez de <?=$centro?>, quizas no tengas activado el short tag o como se llame en la configuracion php

muy bien ahora entiendo mas pero claro hice lo que mencionas de ponerle <¿php=$centro?> y nada tambien que crees que pùeda ser
  #19 (permalink)  
Antiguo 20/11/2009, 14:23
Avatar de pedroca  
Fecha de Ingreso: julio-2009
Mensajes: 97
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: ordenar dos columnas

estimado gracias eres un maestro ya lo solucione lo que hice solamente fue mover el $centro=""; mas arriba y bingo funciono perfectamente tu codigo GRACIAS
  #20 (permalink)  
Antiguo 20/11/2009, 15:31
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: ordenar dos columnas

de nada amigo, ya has visto que no he usado nada raro, es solo...... jugar con las variables

saludos
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 16:45.