Foros del Web » Programando para Internet » PHP »

Cambiar consulta según select

Estas en el tema de Cambiar consulta según select en el foro de PHP en Foros del Web. Hola a todos, Pues mi duda es la siguiente: Tengo esta consulta: Código: select * from eventos ORDER BY mes DESC, dia DESC Lo cuál ...
  #1 (permalink)  
Antiguo 05/11/2010, 07:32
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Cambiar consulta según select

Hola a todos,

Pues mi duda es la siguiente:

Tengo esta consulta:

Código:
select  * from eventos ORDER BY mes DESC, dia DESC
Lo cuál me muestra una lista de eventos.

Lo que quiero hacer es un menú select ordenado por meses, de tal forma que, por ejemplo, si eligen el mes Octubre, la consulta cambie a:

Código:
select  * from eventos WHERE mes=10 ORDER BY dia DESC
También si fuera posible conseguir adaptar 2 selects, que muestre los resultados según dos variantes... en mi caso sería según el mes y según el organizador (tampoco tengo idea de como seria la consulta).

Actualmente uso archivos independientes, modulando el archivo php que muestra los resultados. Ejemplo:

Eventos.php » Muestra por defecto el archivo eventos_temp.php que contiene la consulta general.

Eventosphp?mes=octubre »
Muestra el archivo Octubre.php que contiene la consulta en la que únicamente se muestran los eventos del mes 10 (Octubre).

Supongo que esto se puede lograr con condicionantes en PHP, pero realmente no tengo idea de como hacerlo. Espero su pronta ayuda.

Saludos.
  #2 (permalink)  
Antiguo 05/11/2010, 08:27
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: Cambiar consulta según select

bueno creo que estas un poco errado, si es como me imagino que quieres, basta con tener un solo archivo que resiva las variables para hacer la consulta

bueno supongamos que tengo un archivo llamado

inicio.php
Código PHP:
<form name="form1" method="post" action="buscar.php">
  <
label>
  <
div align="center">Selecciona el Mes a Buscar 
    
<select name="mes" id="mes">
      <
option value="1">Enero</option>
      <
option value="2">Febrero</option>
      <
option value="3">Marzo</option>
      <
option value="4">Abril</option>
      <
option value="5">Mayo</option>
      <
option value="6">Junio</option>
      <
option value="7">Julio</option>
      <
option value="8">Agosto</option>
      <
option value="9">Septiembre</option>
      <
option value="10">Octubre</option>
      <
option value="11">Noviembre</option>
      <
option value="12">Diciembre</option>
      </
select>
  </
div>
  </
label>
  <
p align="center">
    <
label>Ordenar de forma 
    
<select name="orden" id="orden">
      <
option value="DESC">Descendiente</option>
      <
option value="ASC">Ascendente</option>
    </
select>
    </
label>
  </
p>
  <
p align="center">
    <
label>
    <
input type="submit" name="enviar" id="enviar" value="Enviar">
    </
label>
  </
p>
</
form
este tendra un formulario que te dice como quieres hacer la busqueda y te envia al archivo

buscar.php
Código PHP:

$link
=conexion();  //aqui haces la conexion a la base de datos como la haces tu

$mes=$_POST['mes'];
$orden=$_POST['orden'];

$resul=mysql_query(select  from eventos where mes '$mes' ORDER BY dia '$orden'",$link);

//de aqui en adelante e imagino que sabes hacerlo 
dale a ver si es asi la cosa
  #3 (permalink)  
Antiguo 05/11/2010, 10:32
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Cambiar consulta según select

@johhan16

Ante todo muchas gracias por tu ayuda :)

cuando pruebo el código que me diste me sale el siguiente error:

Código:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/usuario/public_html/buscar.php on line 11
Aqui dejo el código del archivo buscar.php

Código PHP:
Ver original
  1. <?php
  2.  
  3. $con=mysql_connect("******","******","******");
  4. mysql_select_db("******",$con);
  5.  
  6. $mes=$_POST['mes'];
  7. $orden=$_POST['orden'];
  8.  
  9. $result=mysql_query("select  * from eventos where mes = '$mes' ORDER BY dia '$orden'",$con);
  10.  
  11. while($row = mysql_fetch_array($result)) {
  12. ?>
  13. <table cellpadding=2 cellspacing=0 border=0>
  14.  <tr>
  15.  <td>
  16.  <div align=left><font size=2><a href=<?echo $row['link']?> target=_blank><b><?echo $row['nombre']?></b></a></div></td>
  17.  </tr>
  18.  <tr>
  19.  <td>
  20.  <div align=left><font color="#898989" size=1><b>Organizador:</b> <font color="#3203F0"><?echo $row['organizador']?></font> l <b>Fecha:</b> <?echo $row['dia']?> - <?echo $row['mes']?> - <?echo $row['anio']?> l <b>Hora:</b> <?echo $row['horas']?>:<?echo $row['minutos']?> <i>(Hora Perú)</i></font></div>
  21.  </td>
  22.  </table><br>
  23. <?
  24. }
  25. ?>


EDIT:

Ya lo solucioné, era simplemente quitar las comillas de la variable $orden al hacer la consulta:

Código PHP:
Ver original
  1. $result=mysql_query("select  * from eventos where mes = '$mes' ORDER BY dia $orden",$con);

Mil gracias =)

Última edición por kenproxd; 05/11/2010 a las 11:21

Etiquetas: select
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 23:17.