Foros del Web » Programando para Internet » PHP »

Problemas con la búsqueda: SELECT

Estas en el tema de Problemas con la búsqueda: SELECT en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 25/05/2008, 14:39
 
Fecha de Ingreso: mayo-2008
Mensajes: 4
Antigüedad: 15 años, 11 meses
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
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 11:49.