Foros del Web » Programando para Internet » PHP »

Ordenar segun variable

Estas en el tema de Ordenar segun variable en el foro de PHP en Foros del Web. Hola a todos; tengo una consulta que la ordeno por un campo. En los registros me salen 50 que son heterosexuales y 10 que son ...
  #1 (permalink)  
Antiguo 05/06/2010, 07:49
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Ordenar segun variable

Hola a todos;
tengo una consulta que la ordeno por un campo. En los registros me salen 50 que son heterosexuales y 10 que son bisexuales y 23 otras categorias. Me gustaria saber como puedo hacer para que me los ordene la consulta por ejemplo por bisexuales mediante una variable.
En la consulta cuando le pican encima de "orientacion" le he colocado un isset para cojer la variable, lo que no se es como decirle a ORDER BY para que me los ordene por ese criterio.

Código PHP:
if (isset($_GET['va_orientacion'])) {
  
$criterio $_GET['va_orientacion'];

}

mysql_select_db($database_tengo$tengo);
$query_entrada "SELECT * FROM usuarios WHERE sexo='chica' ORDER BY  orientacion DESC"
Un saludo
  #2 (permalink)  
Antiguo 05/06/2010, 07:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Ordenar segun variable

Pero ya estás ordenándolos. Podrías postear un ejemplo de como lo tienes y como quieres que aparezca.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 05/06/2010, 08:04
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Ordenar segun variable

Si pero me los ordena utilizando "DESC" y lo que quiero es ordenarlos segun la variable.
Por ejemplo...

TRANSEXUAL
HETERO
BISEXUAL

Con este criterio, solo puedo ordenadorlos por ASC o DESC pero... y si quisiera que los primeros registros fueran "HETERO" ?
  #4 (permalink)  
Antiguo 05/06/2010, 08:11
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Ordenar segun variable

Puedes usar la función FIND_IN_SET de MySQL.
Código MySQL:
Ver original
  1. SELECT * FROM usuarios WHERE sexo='chica' ORDER BY FIND_IN_SET(orientacion, 'TRANSEXUAL, HETERO, BISEXUAL')
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 05/06/2010, 08:23
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Ordenar segun variable

No me funciona, me sale esto "FUNCTION admin_tengoplan.FIND_IN_SET does not exist" y asi es como me queda la consulta.
Código PHP:
$query_entrada "SELECT * FROM usuarios WHERE sexo='chica' ORDER BY FIND_IN_SET (orientacion, '$criterio') "
  #6 (permalink)  
Antiguo 05/06/2010, 08:27
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Ordenar segun variable

Ya no te podría decir, espera que un moderador te mueva al foro de MySQL para que te puedan indicar como te aconsejarían hacerlo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 05/06/2010, 08:40
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Ordenar segun variable

Ya esta, el problema estaba en el espacio.
Pero no me lo ordena como deberia, ya que si le doy a BISEXUAL me ordena por HETERO y si le doy a HETERO, me lo ordena por BISEXUAL.
Gracias por tu ayuda
  #8 (permalink)  
Antiguo 05/06/2010, 08:49
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Ordenar segun variable

Usa DESC después de la función.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 05/06/2010, 09:40
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Ordenar segun variable

cada dia entiendo menos el php.
A ver si coloco esto
Código PHP:
$query_entrada "SELECT * FROM usuarios WHERE sexo='chica' ORDER BY FIND_IN_SET(orientacion, '$criterio') DESC"
me funciona bien con este isset
Código PHP:
if (isset($_GET['va_orientacion'])) {
    
$criterio $_GET['va_orientacion'];

Ahora quiero ponerle otra variable, o sea que "orientacion" no sea fijo, si no dinamico. así que le coloco una variable en el isset.

Código PHP:
if (isset($_GET['va_orientacion'])) {
    
  
$criterio $_GET['va_orientacion'];
$crite="orientacion";

y el la consulta
Código PHP:
$query_entrada "SELECT * FROM usuarios WHERE sexo='chica' ORDER BY FIND_IN_SET('$crite', '$criterio') DESC"
Pues asi no funciona.... alguna ayudita?
Gracias
  #10 (permalink)  
Antiguo 05/06/2010, 11:28
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Ordenar segun variable

Porque el primer valor de FIND_IN_SET no es un string, sino el nombre del campo, en tu caso debe ser sin comillas el primer valor
Código MySQL:
Ver original
  1. SELECT * FROM usuarios WHERE sexo='chica' ORDER BY FIND_IN_SET($crite, '$criterio') DESC
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: variables
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 15:29.