MySQL - Problema con ordenar unos registros

 
Vista:
sin imagen de perfil

Problema con ordenar unos registros

Publicado por Unexes (16 intervenciones) el 13/11/2012 03:01:18
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<form name="Ordenacion" method="GET" action="index.php">
<select name="ordenar" id="ordenar"  style class="Guias2" onchange="this.form.submit()" >
    <option value="-1" selected>&nbsp;&nbsp;&nbsp;Ordenar por</option>
<?php
    $tablaordenacion = mysql_query("SELECT * FROM ordenar ORDER BY Descrip_Orden ASC");
    while ($registroordenacion = mysql_fetch_array($tablaordenacion)) {
?>
<option value="<?php echo $registroordenacion['Ordenacion']; ?>"><?php echo "&nbsp;&nbsp;" .$registroordenacion['Descrip_Orden']; ?></option>
<?php
    }
    mysql_free_result($tablaordenacion);
?>
</select>
</form>


Y luego tengo en la tabla donde busco los registros (solo pongo el trozo del ORDER BY)
1
2
3
4
if (isset($_GET['ordenar'])and $_GET['ordenar'] <>'-1') {
        $sql .= " ORDER BY {$ordenar} ";
       }else {$sql .=  ' ORDER BY rand('.$dias_dif.') ';
}


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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 796
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Problema con ordenar unos registros

Publicado por xve (1151 intervenciones) el 13/11/2012 20:27:52
Hola Unexes, según entiendo, haciendo un simple link hacia la página en la que te encuentras, seria mas que suficiente, no? ya que al mostrar la pagina sin parámetros, se volvería a mostrar correctamente.

algo así:
1
<a href="index.php">Quitar orden</a>


Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Problema con ordenar unos registros

Publicado por unexes (16 intervenciones) el 13/11/2012 21:57:32
Gracias xve por tu respuesta pero ya encontre la solución gracias a un compañero, esto es lo que he hecho por si alguien lo necesita he añadido esta linea:
1
<option value="<?php echo 'rand('.$dias_dif.')'; ?>">Orden aleatorio inicial</option>

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

No obstante de nuevo gracias a todos los que me habeis leido, un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar