Foros del Web » Programando para Internet » PHP »

Problema con ordenar unos registros

Estas en el tema de Problema con ordenar unos registros en el foro de PHP en Foros del Web. Hola a tod@s. Me ha surgido un problema que espero me podais ayudar para ordenar unos registros, selecciono como lo quiero ordenar desde un select, ...
  #1 (permalink)  
Antiguo 12/11/2012, 19:54
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 3 meses
Puntos: 7
Problema con ordenar unos registros

Hola a tod@s.

Me ha surgido un problema que espero me podais ayudar para ordenar unos registros, selecciono como lo quiero ordenar desde un select, primero os pongo el código que hasta ahora funciona y es cuando intento añadir lo que luego expondre cuando me surge el problema.

Tengo una tabla que se llama ordenar y que tiene 3 campos
id ------ Descrip_Orden------Ordenacion
en el primero esta el id, en el segundo esta la descripcion como quiero ordenar y en el tercero hay algo como "Nombre ASC", "Precio ASC", etc... como digo esta funcionando.

Luego tengo un select que relleno con esta tabla:
Código PHP:
Ver original
  1. <form name="Ordenacion" method="GET" action="index.php">
  2. <select name="ordenar" id="ordenar"  style class="Guias2" onchange="this.form.submit()" >
  3.     <option value="-1" selected>&nbsp;&nbsp;&nbsp;Ordenar por</option>
  4. <?php
  5.     $tablaordenacion = mysql_query("SELECT * FROM ordenar ORDER BY Descrip_Orden ASC");
  6.     while ($registroordenacion = mysql_fetch_array($tablaordenacion)) {
  7. ?>
  8. <option value="<?php echo $registroordenacion['Ordenacion']; ?>"><?php echo "&nbsp;&nbsp;" .$registroordenacion['Descrip_Orden']; ?></option>
  9. <?php
  10.     }
  11.     mysql_free_result($tablaordenacion);
  12. ?>
  13. </select>
  14. </form>

Y luego tengo en la tabla donde busco los registros (solo pongo el trozo del ORDER BY)
Código HTML:
Ver original
  1. if (isset($_GET['ordenar'])and $_GET['ordenar'] <>'-1') {
  2.         $sql .= " ORDER BY {$ordenar} ";
  3.        }else {$sql .=  ' ORDER BY rand('.$dias_dif.') ';
  4. }
Como veis en este ultimo trozo de código hay una variable "rand('.$dias_dif.')" que le pasa un número diferente cada cierto tiempo a rand para que al entrar en la página o al refrescar la misma cambie el órden de los registros mientras no utilicemos el select de Ordenar.
Hasta Aqui todo bien: lo que necesito es poner una nueva opción en el select que al seleccionarla vuelva todo como cuando se entra en la página por primera vez osea haga la ordenacion que hace cuando utiliza ORDER BY rand('.$dias_dif.')

Espero haberme esplicado, gracias a todos.
__________________
¿Hay algo mas hermoso que ayudar.?
  #2 (permalink)  
Antiguo 13/11/2012, 03:19
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problema con ordenar unos registros

Código PHP:
Ver original
  1. <form name="Ordenacion" method="GET" action="index.php">
  2. <select name="ordenar" id="ordenar"  style class="Guias2" onchange="this.form.submit()" >
  3.     <option value="-1" selected>&nbsp;&nbsp;&nbsp;Ordenar por</option>
  4.     <!-- <option value="<?php echo 'rand('.$dias_dif.')'; ?>">Sin ordenar</option> //-->
  5. <?php
  6.     $tablaordenacion = mysql_query("SELECT * FROM ordenar ORDER BY Descrip_Orden ASC");
  7.     while ($registroordenacion = mysql_fetch_array($tablaordenacion)) {
  8. ?>
  9. <option value="<?php echo $registroordenacion['Ordenacion']; ?>"><?php echo "&nbsp;&nbsp;" .$registroordenacion['Descrip_Orden']; ?></option>
  10. <?php
  11.     }
  12.     mysql_free_result($tablaordenacion);
  13. ?>
  14. <option value="<?php echo 'rand('.$dias_dif.')'; ?>">Sin ordenar</option>
  15. </select>
  16. </form>

Puedes poner ese nuevo option al fina o al principio...

Código PHP:
Ver original
  1. if (isset($_GET['ordenar']) && $_GET['ordenar']!='-1') {
  2.         $sql .= " ORDER BY {$ordenar} ";
  3.   }else {
  4.         $sql .=  ' ORDER BY rand('.$dias_dif.') ';
  5. }
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 13/11/2012, 06:03
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 3 meses
Puntos: 7
Respuesta: Problema con ordenar unos registros

Gracias quimfv funciona perfecto eres genial, muchas gracias.

Habia probado algo parecido pero no consegui que funcionara, en algún sitio de la instrucción que intente metia la pata.

Gracias, un saludo.
__________________
¿Hay algo mas hermoso que ayudar.?

Etiquetas: registros, select, sql, tabla, unos, campos
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 13:37.