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:
Hasta aquí bien, si por ejemplo solo hemos buscado en título y cronologia, tenemos que campos[0]=titulo, campos [1]=crono$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++; }
Pero llega un punto en el código que escribo:
Código:
Es en la última línea donde falla, pues construye bien la sentencia, por ejemplo si tan solo hemos buscado por registro, aparece$cadbusca="SELECT * FROM $cat"; //cat: categoría if ($nonulos !=0) { $cadbusca=$cadbusca." WHERE"; $cadbusca=$cadbusca." $cat.$campos[0] LIKE '%$"; $cadbusca=$cadbusca."$campos[0]%'" }
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!