Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/05/2008, 14:39
edelweiz
 
Fecha de Ingreso: mayo-2008
Mensajes: 4
Antigüedad: 16 años
Puntos: 0
Problemas con la búsqueda: SELECT

Buenas!

Estoy programando una página web de fotografías, y tengo problemas a la hora de realizar la búsqueda.

En el formulario de búsqueda se puede escoger una categoría (pintura, escultura...) y buscar en 4 campos de la fotografía: registro, título, cronologia e información.


Como no quería que tuviera en cuenta los campos si estaban vacíos (si no se introducía ninguna información en ellos) me las he arreglado para que el SELECT se cree en función de los campos no vacíos.


Código:
 $campos[4]; // para guardar el número de los campos no nulos 
   
   if ($registro != NULL) 
   		{
		$campos[$nonulos]="registro";	
		$nonulos++;
		}
		
	if ($titulo != NULL)
		{
		$campos[$nonulos]="titulo";
		$nonulos++;
		}
			
		if ($crono != NULL)
		{
		$campos[$nonulos]="crono";
		$nonulos++;
		}
		if ($info != NULL)
		{;
		$campos[$nonulos]="info";
		$nonulos++;
		}
Hasta aquí bien, si por ejemplo solo hemos buscado en título y cronologia, tenemos que campos[0]=titulo, campos [1]=crono

Pero llega un punto en el código que escribo:

Código:
      $cadbusca="SELECT * FROM $cat"; //cat: categoría

if ($nonulos !=0)
	{
	$cadbusca=$cadbusca." WHERE";
        $cadbusca=$cadbusca." $cat.$campos[0] LIKE '%$";
        $cadbusca=$cadbusca."$campos[0]%'"
}
Es en la última línea donde falla, pues construye bien la sentencia, por ejemplo si tan solo hemos buscado por registro, aparece
SELECT * FROM Pintura WHERE Pintura.registro LIKE '%registro%'";
pero no substituye registro por su valor correspondiente, cosa que si que hacía si escribía directamente el nombre del campo:

$cadbusca="SELECT * FROM $categoria where $categoria.registro LIKE '%$registro%' OR $categoria.crono LIKE '$%crono%' OR $categoria.info LIKE '%$info%'";

Como podría arreglarlo? Espero que alguien pueda echarme una mano.

Gracias!

Última edición por edelweiz; 26/05/2008 a las 02:48 Razón: problemas con búsqueda y SELECT