Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/11/2012, 19:54
unexes
 
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.?