Foros del Web » Programando para Internet » PHP »

Ordenar por campo DATE

Estas en el tema de Ordenar por campo DATE en el foro de PHP en Foros del Web. Antes que nada, Saludos. Hoy vengo con una duda que ya me han dicho es muy tonta pero por falta de tiempo no me han ...
  #1 (permalink)  
Antiguo 14/04/2009, 02:22
 
Fecha de Ingreso: enero-2008
Ubicación: Valencia
Mensajes: 23
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Ordenar por campo DATE

Antes que nada, Saludos.

Hoy vengo con una duda que ya me han dicho es muy tonta pero por falta de tiempo no me han podido aclarar. Uso la galeria VictorCL y estoy tratando de modificarla para que la dentro de una categoria me ordene las imagenes por un campo DATE, el campo está en la base de datos como imagen_descripcion (antes era VARCHAR y lo he pasado a DATE), bien a la hora de subir la imagenes todo bien, pero no se como modificar la funcion para que me imprima ordenando por ese campo (imagen_descripcion). Acá pongo el fragmento de la función.

Código PHP:
function listar_imagenes($cat_id,$page){
    global 
$con_db,$galeria;
    
$PHP_SELF=$_SERVER['PHP_SELF'];
    
$cont=0;
    
$query=mysql_query("SELECT imagen_id FROM galeria_imagenes where imagen_categoria='".$cat_id."'",$con_db);
    
$totalrowsmysql_num_rows($query); 
    if(
$page == "" ){
        
$page 1;
    } 
    
$limitvalue $page $galeria['limite'] - ($galeria['limite']); 
    
    
$query=mysql_query("select * from galeria_imagenes, where imagen_categoria='".$cat_id."' order by galeria_descripcion asc LIMIT $limitvalue,".$galeria['limite']."",$con_db);
    
        if(
mysql_num_rows($query) == 0){
            echo 
"<br /><b style='color:#FF0000'>No existen imagenes aun.</b>";
        }else
        {
        echo 
"<table cellspacing='3' cellpadding='2' ><tr>";
        while(
$lista=mysql_fetch_array($query))
        {
            if(
$cont == $galeria['fila_imagenes']) 
            {
            echo 
"</tr><tr>";
            
$cont=0;
            }
          echo 
"<td style='padding:2px;border:1px solid #c0c0c0;'><a href='?cat_id=".$cat_id."&amp;img_id=".$lista['imagen_id'].$galeria['url_opcional']."'><img style='border:0;' src='".$galeria['url_imagenes']."min_".$lista['imagen_nombre']."' alt='' /></a></td>    ";
          
$cont=$cont+1;
    
  } 
He intentado colocar el primero query así

Código PHP:
$query=mysql_query("SELECT imagen_id FROM galeria_imagenes where imagen_categoria='".$cat_id." order by imagen_descripcion",$con_db); 
pero no ha funcionado

Espero una buena alma que me ayude en esta jeje.

Saludos de nuevo y gracias de antemano!
Suerte!
  #2 (permalink)  
Antiguo 14/04/2009, 05:02
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años
Puntos: 2
Respuesta: Ordenar por campo DATE

Código PHP:
$query=mysql_query("SELECT imagen_id FROM galeria_imagenes where imagen_categoria='".$cat_id." order by imagen_descripcion",$con_db); 
tienes algunos fallos faciles de solucionar, pero no se si ese es el problema o que simplemente has escrito la consulta rapido. Te falta cerrar el valor de imagen_categoria con una ' . Tambien tienes que decir si quieres ordenar en sentido ascendente (ASC) o descencente (DESC). La consulta quedaria asi:
Código PHP:
$query=mysql_query("SELECT imagen_id FROM galeria_imagenes WHERE (imagen_categoria='".$cat_id."') ORDER BY imagen_descripcion ASC",$con_db); 
Otra cosilla, para ahorrar un poco de codigo (yo para esto soy un poco meticuloso) puedes saltarte el paso este:
Código PHP:
if($page == "" ){
        
$page 1;
    } 
escribiendo al inicio la funcion asi:

Código PHP:
function listar_imagenes($cat_id,$page='1'){ 
De esta manera si no se le pasa a la funcion ningun valor tomara por defecto 1.
Un saludo y espero haberte ayudado
  #3 (permalink)  
Antiguo 14/04/2009, 11:31
 
Fecha de Ingreso: enero-2008
Ubicación: Valencia
Mensajes: 23
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Ordenar por campo DATE

Men, eres mi héroe! jajaja.

Bueno, a la final por ensayo y error descubrí que estaba colocando el ORDER BY en el query equivocado, iría en el segundo

quedaría así

Código PHP:
    $query=mysql_query("select * from galeria_imagenes where imagen_categoria='".$cat_id."' ORDER BY imagen_descripcion ASC LIMIT $limitvalue,".$galeria['limite']."",$con_db); 
jeje eso pasa cuando juntas un diseñador que NO es programador y un script bajado de internet

Igual te doy las gracias por corregirme y darme esos trozos de código que me pusieron a pensar jajaja..

Saludos, suerte y gracias de nuevo!
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 12:00.