Foros del Web » Programando para Internet » PHP »

Ordenar valores consulta MySQL

Estas en el tema de Ordenar valores consulta MySQL en el foro de PHP en Foros del Web. Hola, Estoy haciendo un sistema que valora unos objetos y les da una nota del 1 al 10. Uso un algoritmo que recoge los datos ...
  #1 (permalink)  
Antiguo 01/01/2013, 07:50
Avatar de PWT26  
Fecha de Ingreso: enero-2011
Mensajes: 48
Antigüedad: 13 años, 2 meses
Puntos: 2
Ordenar valores consulta MySQL

Hola,

Estoy haciendo un sistema que valora unos objetos y les da una nota del 1 al 10. Uso un algoritmo que recoge los datos por MySQL y con un bucle while va almacenando los valores de cada producto en un array:

Código PHP:
$valor[prod1]=5,6;
$valor[prod2]=7,8;
etc
Después de eso, necesito imprimir en pantalla el producto con el valor más alto. Mi idea es a través de el ID, pues posteriormente puedo ir a la DB y consultar los datos.

El problema es que uso max() en el array, pero solo me muestra la nota. ¿Hay alguna manera de seleccionar también el ID?

Saludos,
  #2 (permalink)  
Antiguo 01/01/2013, 08:26
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Ordenar valores consulta MySQL

No entendi del todo, pero supongo que quieres ordenar el array según el ID del array, en todo caso puedes usar ksort o krsort los cuales ordenan el array según el ID....

Código PHP:
Ver original
  1. $array = array(
  2. 'b'=>'casa',
  3. 'c'=>'coche',
  4. 'a'=>'bicicleta',
  5. 'd'=>'arbol'
  6. );
  7.  
  8. //orden por ksort
  9. ksort($array);
  10. /*
  11. a=>bicicleta
  12. b=>casa
  13. c=>coche
  14. d=>arbol
  15. */
  16.  
  17. //order krsort
  18. krsort($array);
  19. /*
  20. d=>arbol
  21. c=>coche
  22. b=>casa
  23. a=>bicicleta
  24. */
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 01/01/2013, 12:40
Avatar de PWT26  
Fecha de Ingreso: enero-2011
Mensajes: 48
Antigüedad: 13 años, 2 meses
Puntos: 2
Respuesta: Ordenar valores consulta MySQL

Cita:
Iniciado por Nemutagk Ver Mensaje
No entendi del todo, pero supongo que quieres ordenar el array según el ID del array, en todo caso puedes usar ksort o krsort los cuales ordenan el array según el ID....

Código PHP:
Ver original
  1. $array = array(
  2. 'b'=>'casa',
  3. 'c'=>'coche',
  4. 'a'=>'bicicleta',
  5. 'd'=>'arbol'
  6. );
  7.  
  8. //orden por ksort
  9. ksort($array);
  10. /*
  11. a=>bicicleta
  12. b=>casa
  13. c=>coche
  14. d=>arbol
  15. */
  16.  
  17. //order krsort
  18. krsort($array);
  19. /*
  20. d=>arbol
  21. c=>coche
  22. b=>casa
  23. a=>bicicleta
  24. */
Hola, lo siento por no expresarme bien (soy un poco novato en eso ). Después de pasar el MYSQL, obtengo un array como el siguiente (dónde el primer numero es el identificador del objeto y el segundo es su nota:

Código PHP:
$array = array(
'1'=>'5',
'2'=>'7,4',
'3'=>'3,8',
'4'=>'9,6'
); 
Lo que necessito es saber cuál es el reultado con mayor nota y saber su ID. Como comento arriba, si uso max() en el ejemplo anterior, me daría "9,6", pero yo lo quiero es que además me de "4".

Saludos.
  #4 (permalink)  
Antiguo 01/01/2013, 13:31
 
Fecha de Ingreso: noviembre-2006
Ubicación: Alicante
Mensajes: 107
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Ordenar valores consulta MySQL

Prueba con esto a ver. Yo no lo he podido probar.

print_r(array_keys($array, max($array)));

Saludos...
  #5 (permalink)  
Antiguo 02/01/2013, 02:48
Avatar de PWT26  
Fecha de Ingreso: enero-2011
Mensajes: 48
Antigüedad: 13 años, 2 meses
Puntos: 2
Respuesta: Ordenar valores consulta MySQL

Cita:
Iniciado por lagunafmr Ver Mensaje
Prueba con esto a ver. Yo no lo he podido probar.

print_r(array_keys($array, max($array)));

Saludos...
Usando el siguiente código:

Código PHP:
$array = array(
'1'=>'5',
'2'=>'7,4',
'3'=>'3,8',
'4'=>'9,6'
);
$id =  array_keys($arraymax($array));
print_r($id); 
me imprime en pantalla:

Código:
Array ( [0] => 4 )
¿Hay alguna forma de poner ese "4" en una variable (porque si pongo la función tuya me imprime obviamente "Array..."?

Saludos,
  #6 (permalink)  
Antiguo 02/01/2013, 12:38
 
Fecha de Ingreso: noviembre-2006
Ubicación: Alicante
Mensajes: 107
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Ordenar valores consulta MySQL

$tu_var = array_keys($array, max($array));

Te aparece lo del array porque con las prisas puse print_r que es para imprimir un array. De esta forma ya deberías de tener la posición en tu variable.
  #7 (permalink)  
Antiguo 02/01/2013, 16:02
Avatar de PWT26  
Fecha de Ingreso: enero-2011
Mensajes: 48
Antigüedad: 13 años, 2 meses
Puntos: 2
Respuesta: Ordenar valores consulta MySQL

Cita:
Iniciado por lagunafmr Ver Mensaje
$tu_var = array_keys($array, max($array));

Te aparece lo del array porque con las prisas puse print_r que es para imprimir un array. De esta forma ya deberías de tener la posición en tu variable.
Al final lo he solucionado haciendo lo siguiente, puesto que el único valor tiene índice 0:

Código PHP:
$variable $array[0]; 

Etiquetas: mysql
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:30.