Ver Mensaje Individual
  #8 (permalink)  
Antiguo 29/05/2011, 11:47
charlyta
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: optimizar código

Gracias por las respuestas.

Perdonadme pero creo que no me he explicado bien.. Imaginaros que tengo esta instrucción:

Código PHP:
Ver original
  1. $fields=array('tema', 'autor', 'titulo');
  2. $sql_where="";
  3. for ($i=0;$i<count($fields);$i++)
  4. {
  5.  
  6.     ($sq_where="")?"":" , ";
  7.     $sql_where.=$fields[$i]."='".$_GET[$fields[$i]]>"' ";
  8.  
  9. }
  10. $sql="SELECT * from $table where ".$sql_where." limit 20";

Lo que necesito es introducir en ella el GET con las variables recibidas
(yo suelo hacer:

Código PHP:
Ver original
  1. foreach ($_GET as $key => $value)
e implementar AND/OR

es decir sustituir $_GET[$fields[$i]]>" por las variables recibidas


Sé que es todo demasiado tonto pero me ayuda a aprender.. Gracias de nuevo


que me quedase parecido a esto

Código PHP:
Ver original
  1. foreach ($_GET as $key => $value) if ($key != ''){
  2.       $preq .= " AND ( 0";
  3.     foreach($Campos as $Campo)$preq .= " OR $Campo LIKE '%".$value."%'";
  4.     $preq .= ")";


o lo que es lo mismo solucionar esta función correctamente:

Código PHP:
Ver original
  1. function buscar($Tabla,$Campos,$db,$con){
  2. foreach ($_GET as $key => $value) if ($key != ''){
  3.       $preq .= " AND ( 0";
  4.     foreach($Campos as $Campo)$preq .= " OR $Campo LIKE '%".$value."%'";
  5.     $preq .= ")";
  6.    
  7.   }
  8.   $result=mysql_query("SELECT * FROM '$Tabla' WHERE $preq",$con);
  9.          
  10. }

Última edición por charlyta; 29/05/2011 a las 11:52