Foros del Web » Programando para Internet » PHP »

Ordenar datos de un query con un select

Estas en el tema de Ordenar datos de un query con un select en el foro de PHP en Foros del Web. Buenas, Estoy empezando a tocar el tema de la ordenación y busqueda de consultas a bases de datos.. y lo que ando intentando hacer es ...
  #1 (permalink)  
Antiguo 22/05/2005, 13:37
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Ordenar datos de un query con un select

Buenas,

Estoy empezando a tocar el tema de la ordenación y busqueda de consultas a bases de datos.. y lo que ando intentando hacer es crear unas variables elegibles con un select (html) digamos que si elijes listar ordenador por autor pues elijes autor en el desplegable (select) y te lo ordena alfabeticamente por nombre de autor (mas adelante ya aprenderé como listar con mas opciones).

lo que aun no se muy bien es como estructurar el cogido y siempre me lio a la hora de saber como hacer que reconozca esas variables en el query.

Me podeis orientar un poco sobre las estructuras de un query con variables que simplemente cambien la campo elegido???


saludos
  #2 (permalink)  
Antiguo 22/05/2005, 16:03
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
... perdón, no me queda clara la cuestión... ¿a qué te refieres con estructurar el código???

Contestando concretamente a el título de a consulta te diré que para establecer un orden necesitas usar la sentencia ORDER BY referida a un campo y los atributos ASC ó DESC para establecer un orden ascendente ó descendente respectivamente... dicho órden estará basado en el tipo de campo.

Ejemplo:
Código:
SELECT campos FROM tabla WHERE campo_comparativo='valor_buscado' ORDER BY campo_orden DESC
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 22/05/2005, 16:09
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
hola jam,

Eso que me comentas si lo se, lo que me atrapa es al variables elegibles con un desplegable (select) y que al elegir cualquier campo de ese desplegable sustituya automaticamente dicho campo en el query.

no se si me explico demasiado bien... aun no he cogido la palabreria php. xD

saludos
  #4 (permalink)  
Antiguo 22/05/2005, 16:11
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
ha claro perdona el select al que me refiero no es el de php sino el de HTML, el que crea desplegables. Busco que cada opción del mismo sea una variable y que al elegir una aplique dicha variable en el query. Esas variables serian los campos de mi base de datos, de esta forma podria ordenarlos por cualqueira de los campos de dicha base de datos

saludos
  #5 (permalink)  
Antiguo 22/05/2005, 16:15
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Fácil, recojes el value de tu select y lo aplicas a el campo...:
Código PHP:
<?
$campo
$_POST['name_select'];
// conectamos y demás
$query"SELECT campos FROM tabla WHERE $campo='valor'";
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 22/05/2005, 16:20
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
solo una duda:

¿como reconoce php lo que elijes en el select, si dicho select es html? seguro que es una chorrada... pero macho aún estoy en fase "novato intentando hacer cosas" xD.

saludos
  #7 (permalink)  
Antiguo 22/05/2005, 16:28
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
... en toda la semana he repetido eso :
Todos los elementos de un formulario (todos) los recojes por su "name" y optienes su "value". En el caso del listbox el "name" se lo daz dentro de la etiqueta <select> y el "value" en las diferentes opciones... entonces mandará como "value" la opción seleccionada...

En otras ocasiones fuí más extenso... . Suerte!
PD: Si sigues teniendo duda dime para extenderme.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #8 (permalink)  
Antiguo 22/05/2005, 17:33
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Bueno jam,

Muchisimas gracias por tu ayuda, mañana intentaré aplicar esto y a ver que tal funciona.

salu2
  #9 (permalink)  
Antiguo 22/05/2005, 17:52
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
http://www.forosdelweb.com/showthrea...ghlight=select
http://www.forosdelweb.com/showthrea...ghlight=select

... básicamente lo mismo... pero podría no estar demás. Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #10 (permalink)  
Antiguo 06/06/2005, 16:45
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
puff.... no me sale.

esto es el codigo que pongo:
Código PHP:
<?php 
echo"<select name='select'>
    <option value='Fecha'>Fecha</option>
    <option value='$autor'>Autor</option>
    <option value='$estilo'>Estilo</option>
    <option value='$tamano'>Tama&ntilde;o</option>
    <option value='$duracion'>Duraci&oacute;n</option>
    <option value='$clics'>Hits</option>
        </select>"
;
$campo$_POST['select']; 
$conexion mysql_connect("localhost","xxxxxxxxxxxxxx","xxxxxxxxxxx");
mysql_select_db("xxxxxxxxxxxxxxxx"$conexion) OR die("No se puede establecer la conexión a MySQL");
$sql mysql_query("SELECT * FROM temas ORDER BY $campo DESC LIMIT 0,10") or die (mysql_error()); 
while (
$row mysql_fetch_array($sql)) { 
$id "$row[temaid]"
$titulo "$row[temanombre]";
$link "$row[temaurl]";
$descripcion "$row[temadescripcion]";
$autor "$row[temaautor]";
$estilo "$row[temaestilo]";
$duracion "$row[temaduracion]";
$tamano "$row[temasize]";
$clics "$row[clics]"
$criticas "$row[temacomentarios]";

    echo
"<p><a href='descargar.php?id=$id&link=".urlencode($link)."' class='mainmenu1'>$titulo</a> <span class='gensmall'>($clics Hits)</span><br /> 
    Autor:<span class='gensmall'> $autor</span><br /> 
    Estilo:<span class='gensmall'> $estilo</span><br /> 
    Duración:<span class='gensmall'> $duracion Min.</span><br /> 
    Tamaño:<span class='gensmall'> $tamano Mb.</span><br /> 
    Comentarios del Autor:<span class='gensmall'> $descripcion</span><br />
    <a href='$criticas' class='mainmenu'><u>Criticas y Comentarios para este tema</u></a>"
;     
    } 
?>
Este es el resultado que me da= http:www.mindpanic.com/temas/temas2.php (es una pagina de pruebas, la original es igual pero sin el 2)

Seguro que lo del select esta mal... pero joder me cuesta mucho idear los scripts.... no se si algun dia pasare de la fase "novato intentando hacer cosas"

saludos
  #11 (permalink)  
Antiguo 06/06/2005, 17:04
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
En realidad lo que me gustaria hacer es un combo de esos en los que tienes dos selects, el primero es para elejir el criterio general de busqueda como por ejemplo "estilo" y el segundo select seria para elejir las categorias dentro de ese estilo "tehcno" "house" "minimal"....

pero claro aun me keda muy lejos el conseguir hacer algo asi.... ire poco a poco, darme pistas a ver si comiendome el coco consigo hacerlo.

saludos
  #12 (permalink)  
Antiguo 06/06/2005, 22:59
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respecto a tu código... supongo no es todo... ¿dónde abres y cierras las etiquetas de tu formulario (estás recibiendo por POST)????... ¿no debería llevar un evento onChange?? ... ¿dónde está el segundo listbox??? ó lo que sea de donde recibes los valores que usas en el listbox que muestras...

Por otra parte, tediré que la forma en la que asignas no es correcta.. trata hacerlo de la siguiente manera: $id = $row['temaid']; .

Y bien... lo de siempre, cuando tengas un error menciona EXACTAMENTE cuál es y marca la línea involucrada... en el enlace que mencionas dic que es un error de SQL... pero en dicha query hay un LIMIT 0, 15 que no manejas en el código que muestras; además ¿la línea 1??....

... ahora, lo que quieres hacer.. es tema muy tratado: http://www.forosdelweb.com/f18/trabajar-con-dos-listas-desplegables-que-guardan-relacion-211046/

Suerte!
PD: muy bonito reproductor... ... pueque a un futuro necesite algo similar...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #13 (permalink)  
Antiguo 07/06/2005, 07:05
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Muchas gracias es justo lo que buscaba.

P.D el reproductor es Wimpy que te lista automaticamente lso mp3 que metes en un determinado directorio.... me keda meterle la imagen del cuadrado de la izquierda... este es de trapicheo... yo no voy a pagar por un script y un flash.
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 16:38.