Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/02/2011, 21:45
nahuelevy
 
Fecha de Ingreso: febrero-2011
Ubicación: Capital Federal
Mensajes: 45
Antigüedad: 13 años, 2 meses
Puntos: 3
Respuesta: Filtro/busqueda php

A ver. En primer lugar, no deberías usar request. Es inseguro (http://devlog.info/2010/02/04/why-php-request-array-is-dangerous/)

deberías usar $_POST cuando estas usando un form con metodo post, y $_GET cuando lo usas en método get (en ese caso, las variables se mandan por url). Por mi parte, salvo para casos concretos, uso el form siempre con metodo post.

Después, esas funciones de abajo son bastante engorrosas. Vos lo que necesitás es buscar en campos indeterminados? Por qué usas una función tan rebuscada si lo que debe hacer es buscar a partir de cualquier criterio? Tal vez esté entendiendo mal...

Pero si entiendo bien, yo haría:

Código HTML:
Ver original
  1. <form action="pagina.php" method="get" name="form1" id="form1">
  2. <input name="busqueda" type="text" id="busqueda" value="<?php echo $_GET['busqueda']; ?>" />
  3. <input name="btnBuscar" type="submit" id="btnBuscar" value="Buscar!" />
  4. </form>

Código PHP:
Ver original
  1. if(isset($_POST["btnBuscar"]))
  2. {
  3.     if($_POST["busqueda"]!="") {
  4.           if(is_numeric($_POST["busqueda"])) {
  5.                   $sql="select * from producto where id=". $_POST["busqueda"];
  6.           }
  7.           else
  8.           {
  9.                   $sql="SELECT * FROM producto where provincia like '%".$_POST["busqueda"]."%' or precio like '%".$_POST["busqueda"]."%'";
  10.           }
  11.           $rs_obj=mysql_query($sql);
  12.           while($rs=mysql_fetch_array($sql)) {
  13.                  //ACA ARMAS LA TABLA
  14.           }
  15.      }
  16.      else
  17.     {
  18.            $mensaje="<font color='red'>Escriba Algo</font>";
  19.     }
  20. }

Esto no te sirve? Al menos, debería andar y simplificas el codigo. Saludos