Ver Mensaje Individual
  #9 (permalink)  
Antiguo 05/07/2005, 08:58
pellagofio
 
Fecha de Ingreso: noviembre-2003
Mensajes: 383
Antigüedad: 20 años, 5 meses
Puntos: 2
Yo también tuve el mismo problema ( o parecido ) y lo solucioné de la siguiente forma.

Esta función te construye la consulta (query) que luego le pasas a la función mysql_query().

Código PHP:
//Función que construye el query.
function genera_query($cadena,$condicion)
{
  
$pos=strpos($cadena,"where");

  if (
$pos === false)
      
$cadena=$cadena." where ";
  if (
$pos !== false)
      
$cadena=$cadena." and ";

  
$cadena=$cadena.$condicion;
  return 
$cadena;
}

//Construir el query dependiendo de las variables recibidas del formulario.
if ($busqueda!="")
   
$mysql_string=genera_query ($mysql_string,"Comun.Nombre LIKE '%$busqueda%'");

if (
$resumen!="")
   
$mysql_string=genera_query ($mysql_string,"Comun.Resumen LIKE '%$resumen%'");

if (
$comentario!="")
   
$mysql_string=genera_query ($mysql_string,"Comun.Comentario LIKE '%$comentario%'");

if (
$comentario_cineforum!="")
   
$mysql_string=genera_query ($mysql_string,"Comun_Pelicula.texto_cineforum LIKE '%$comentario_cineforum%'");

if (
$genero!="")
   
$mysql_string=genera_query ($mysql_string,"r_cine_genero.id_genero_cine LIKE '%$genero%'"); 
Lo unico que hacemos es verificar si cada variable recibida desde el formulario que usas para seleccionar los campos de busqueda esta vacia o no.
En caso de que NO este vacia añadimos la condición de busqueda para esa variable.
La función se encarga de anteponer un AND o el WHERE con lo cual nosotros unicamente nos centramos en pasarle la condición de busqueda que realmente queremos que se realize.

Con una simple modificación puedes pasarle a la función en otra variable el AND, OR etc con lo que consegiras más control sobre la construcción del query.

Para mis necesidades me ha facilitado mucho el trabajo.
Espero que te ayude.