Foros del Web » Programando para Internet » PHP »

Problema con OrderBy

Estas en el tema de Problema con OrderBy en el foro de PHP en Foros del Web. Hola buenas tengo un problema con el OrderBy , cuando hago una lista en orden descendiente me muestra, por ejemplo: Si en la tabla tengo ...
  #1 (permalink)  
Antiguo 06/10/2011, 07:26
 
Fecha de Ingreso: noviembre-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Pregunta Problema con OrderBy

Hola buenas tengo un problema con el OrderBy , cuando hago una lista en orden descendiente me muestra, por ejemplo:

Si en la tabla tengo los campos id: 1, 2, 3, 4 , 5

Código PHP:
<?php

$result 
mysql_query("SELECT * FROM fvideos ORDER BY id DESC LIMIT 4");

while (
$y=mysql_fetch_assoc($result)){
    
$nombre=$y['nombre'];
    
    
$hits=$y['hits'];
    
$video=$y['video'];
    
$imagen=$y['imagen'];
    
$id=$y['id'];
    
    
    echo 
$id;
    
}    

 
?>
Cuando pongo esto, me aparecen solo 3 RESULTADOS, apesar de que puse LIMIT 4. Y me los ordena en forma descendiente, PERO! los ordena apartir de el penultimo dato de la tabla.. Es decir:

ME MUESTRA : 4 - 3 - 2 !

PORQUE NO MUESTRA : 5 - 4 - 3 - 2 ? Forma Descendiente LIMIT 4 ?

Esto me pasa en todos los campos, tengo uno en el que ordeno descendientemente segun el campo "HITS" que es para ordenar los videos mas vistos.. y en realidad el video mas visto NUNCA aparece porque empieza a contar desde el segundo mas visto..

Alguna explicacion o ayuda porfavor
  #2 (permalink)  
Antiguo 06/10/2011, 07:39
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 15 años, 3 meses
Puntos: 19
Respuesta: Problema con OrderBy

Chequea eso porque hay algo que debes tener algo mal sera tu gestor de base de datos no se no le veo explicacion a ese problema...

yo probe tu codigo y me arroja: 5 - 4 - 3 - 2 - 1 en una Bd que tengo...

asi que no se que estaras colocando mal :S te pasa en esa tabla o con todas?? si puedes borrala y creala de nuevo chequeando que las opciones de las tablas sean las predefinidas...
  #3 (permalink)  
Antiguo 06/10/2011, 07:39
Avatar de CesarHC  
Fecha de Ingreso: junio-2011
Ubicación: localhost
Mensajes: 566
Antigüedad: 13 años, 5 meses
Puntos: 56
Respuesta: Problema con OrderBy

La consulta esta bien, la cuestion esta dentro del while concretamente creo que en

mysql_fetch_assoc: (Revisalo)


Devuelve un array asociativo que corresponde a la fila recuperada y mueve el apuntador de datos interno hacia adelante. mysql_fetch_assoc() es equivalente a llamar mysql_fetch_array() con MYSQL_ASSOC como el segundo parámetro opcional. Únicamente devuelve un array asociativo.

Has probado poniendo limit 5?.
__________________
Solo la práctica no te traicionara ¡¡¡¡¡¡

Seguir el camino tu debes PHP The Right Way.
  #4 (permalink)  
Antiguo 06/10/2011, 07:42
 
Fecha de Ingreso: noviembre-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Respuesta: Problema con OrderBy

Es que si pongo limit 5 salen 4, y yo solo quiero que aparezcan 3, en teoria tendria que poner limit 3 ! pero siempre sale uno menos y no sale el de mayor valor.. osea nunca sale la pagina mas visitada :S .. mas ideas?
  #5 (permalink)  
Antiguo 06/10/2011, 07:51
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 15 años, 3 meses
Puntos: 19
Respuesta: Problema con OrderBy

Comprueba que los indices de la tabla esten correctos y no haya un campo VACIO, ayer probe un sistema donde tecnicamente hago lo mismo y tenia un registro donde el ID tenia un valor pero los demas campos no (paso un error al momento de agregar los datos) y a nivel de consultas MYSQL_FETCH_ASSOC no cuenta campos vacios...

pero yo veo que while bien puesto asi los uso yo...

Código PHP:
Ver original
  1. <?php
  2. do
  3. {
  4. ?>
  5. <li><a href="<?PHP echo $rowimagen['ruta'].$rowimagen['imagen']; ?>">
  6. <img src="<?PHP echo $rowimagen['ruta']."thumbs/thumb".$rowimagen['imagen']; ?>" class="<?PHP echo $clase; ?>">
  7. </a></li>
  8. <?php
  9. }
  10. while ($rowimagen = mysql_fetch_assoc($imagenq));
  11. ?>

y no obtengo ese error que obtiene el...
  #6 (permalink)  
Antiguo 06/10/2011, 07:56
 
Fecha de Ingreso: noviembre-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Respuesta: Problema con OrderBy

Pero my codigo esta bien hecho, es correcto porque lo he probado antes, incluso Jujo lo ha corroborado, me parece que es un error diferente que aun sigo buscando y no entiendo :S .
El trozo de code, la sintaxis esta todo bien no tira errores, solo que no coje bien los datos de la tabla :S
  #7 (permalink)  
Antiguo 06/10/2011, 08:00
Avatar de CesarHC  
Fecha de Ingreso: junio-2011
Ubicación: localhost
Mensajes: 566
Antigüedad: 13 años, 5 meses
Puntos: 56
Respuesta: Problema con OrderBy

Acabo de probar tu codigo y a mi me funciona.

Código PHP:
Ver original
  1. <?php
  2. $server="localhost";
  3. $usuario="root";
  4. $pass="";
  5. $bd="tu bd";
  6. $link=mysql_connect($server,$usuario,$pass)or die (exit(mysql_error()));
  7.  
  8. $result = mysql_query("SELECT * FROM fvideos ORDER BY id DESC LIMIT 4");
  9.  
  10. while ($y=mysql_fetch_assoc($result)){
  11.     $nombre=$y['nombre'];
  12.    
  13.     $hits=$y['hits'];
  14.     $video=$y['video'];
  15.     $imagen=$y['imagen'];
  16.     $id=$y['id'];
  17.    
  18.    
  19.     echo $hits;
  20.    
  21. }    
  22.  
  23.  ?>

A ver prueba este codigo.
__________________
Solo la práctica no te traicionara ¡¡¡¡¡¡

Seguir el camino tu debes PHP The Right Way.
  #8 (permalink)  
Antiguo 06/10/2011, 08:01
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 15 años, 3 meses
Puntos: 19
Respuesta: Problema con OrderBy

para mi es tu tabla copia aqui el query para crear esa tabla yo estoy usando mysql. asi que pruebo haber si es que tienes una opcion que esta modificando eso...

yo para probar los codigos priemero los pruebo en el mysql y si veo que trabaja bien lo pongo en el php, por es te dije que chequearas si te pasa con esa tabla o con otras tambien... para ir descartando...
  #9 (permalink)  
Antiguo 06/10/2011, 08:16
 
Fecha de Ingreso: noviembre-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Respuesta: Problema con OrderBy

LO EXTRAÑO! es que cuando hago la consulta :

SELECT * FROM fvideos ORDER BY id DESC LIMIT 3

en SQL dentro de mi PHPMYadmin

Si me devuelve los 3 datos correctamente : 5 - 4 -3 , todo correcto en sql ..

porque en el fichero pasa esto? :S
  #10 (permalink)  
Antiguo 06/10/2011, 08:24
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 17 años, 3 meses
Puntos: 194
Respuesta: Problema con OrderBy

cambia tu fetch por mysql_fetch_array ;)
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #11 (permalink)  
Antiguo 06/10/2011, 08:30
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 15 años, 3 meses
Puntos: 19
Respuesta: Problema con OrderBy

umm en el mismo fichero prueba hacer la consulta con otra Tabla... haber que pasa... aun no entiendo que genera tu error :S
  #12 (permalink)  
Antiguo 06/10/2011, 09:19
 
Fecha de Ingreso: noviembre-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Respuesta: Problema con OrderBy

tenia un problema con el assoc..
estaba colocando mal los echos, algunos fuera del while y me ocasionaban un errorr

gracias a todos, al final he optado por usar arrays, dicen que cosume menos :)
  #13 (permalink)  
Antiguo 06/10/2011, 09:59
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 15 años, 3 meses
Puntos: 19
Respuesta: Problema con OrderBy

pero con el array debes de indicar el numero del campo a mostrar hasta donde se cierto? y puedes decirme donde consultaste que consume menos recursos??
  #14 (permalink)  
Antiguo 06/10/2011, 10:43
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 17 años, 3 meses
Puntos: 194
Respuesta: Problema con OrderBy

Cita:
Iniciado por JuJoGuAl Ver Mensaje
pero con el array debes de indicar el numero del campo a mostrar hasta donde se cierto? y puedes decirme donde consultaste que consume menos recursos??
No es cierto, puedes usar los indices de cadenas
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives

Etiquetas: php+mysql, order-by
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 11:17.