Estoy intentando crear un buscador con tres opciones de busqueda.
El resultado de la busqueda partiria de la información que está alojada en la base de datos.
la pagina resultado-buscador-empresas.php tiene un juego de registros y he insertado este codigo:
SELECT *
FROM empresas
WHERE nombre LIKE '%$nombre%' OR categoria LIKE '%$categoria%' OR localidad LIKE '%$localidad%'
El codigo sería:
Código PHP:
<?php
$currentPage = $_SERVER["PHP_SELF"];
$maxRows_verempresas = 8;
$pageNum_verempresas = 0;
if (isset($_GET['pageNum_verempresas'])) {
$pageNum_verempresas = $_GET['pageNum_verempresas'];
}
$startRow_verempresas = $pageNum_verempresas * $maxRows_verempresas;
mysql_select_db($database_empresa, $empresa);
$query_verempresas = "SELECT * FROM empresas WHERE nombre LIKE '%$nombre%' OR categoria LIKE '%$categoria%' OR localidad LIKE '%$localidad%'";
$query_limit_verempresas = sprintf("%s LIMIT %d, %d", $query_verempresas, $startRow_verempresas, $maxRows_verempresas);
$verempresas = mysql_query($query_limit_verempresas, $empresa) or die(mysql_error());
$row_verempresas = mysql_fetch_assoc($verempresas);
if (isset($_GET['totalRows_verempresas'])) {
$totalRows_verempresas = $_GET['totalRows_verempresas'];
} else {
$all_verempresas = mysql_query($query_verempresas);
$totalRows_verempresas = mysql_num_rows($all_verempresas);
}
$totalPages_verempresas = ceil($totalRows_verempresas/$maxRows_verempresas)-1;
$queryString_verempresas = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_verempresas") == false &&
stristr($param, "totalRows_verempresas") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_verempresas = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_verempresas = sprintf("&totalRows_verempresas=%d%s", $totalRows_verempresas, $queryString_verempresas);
?>
Código PHP:
<?php $nombre=$_POST['nombre']; ?>
<?php $categoria=$_POST['categoria']; ?>
<?php $localidad=$_POST['localidad']; ?>
<form action="resultado-buscador-empresa.php" method="post" name="formbuscador" id="formbuscador">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%"><table width="235" border="0" cellpadding="0" cellspacing="0">
<tr align="left" valign="top">
<td colspan="3"><img src="imagenes/superior-buscador.jpg" width="235" height="50"></td>
</tr>
<tr align="left" valign="top">
<td background="imagenes/derecha-buscador.jpg"><img src="imagenes/derecha-buscador.jpg" width="10" height="121"></td>
<td bgcolor="4589bf"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><span class="labelcell Estilo3">Nombre de la empresa </span><br>
<input name="nombre" type="text" class="combo" id="nombre" size="40"></td>
</tr>
<tr>
<td><span class="labelcell Estilo3">Producto / Actividad </span><br>
<input name="categoria" type="text" class="combo" id="categoria" size="40">
</td>
</tr>
<tr>
<td><span class="labelcell"><span class="Estilo3">Localidad</span><br>
<input name="localidad" type="text" class="combo" id="localidad" size="40">
</span></td>
</tr>
<tr>
<td height="0"><div align="right"> </div></td>
</tr>
<tr>
<td height="1"> </td>
</tr>
<tr>
<td><div align="right">
<input name="Submit2" type="submit" class="messagebox" value="Buscar">
</div></td>
</tr>
</table></td>
<td background="imagenes/derecha-buscador.jpg"><img src="imagenes/derecha-buscador.jpg" width="10" height="121"></td>
</tr>
<tr align="left" valign="top">
<td colspan="3"><img src="imagenes/inferior-menu.jpg" width="235" height="15"></td>
</tr>
</table></td>
</tr>
</table>
El problema es que si pongo más de una opción de busqueda, no realiza la busqueda, pero si solo pongo una opción seleccionando buscar por algunas de estas variables, funciona correctamente,...es decir si pongo esto así:
SELECT *
FROM empresas
WHERE nombre LIKE '%$nombre%' OR categoria LIKE '%$categoria%' OR localidad LIKE '%$localidad%'
no rula, pero si hago esto así:
FROM empresas
WHERE nombre LIKE '%$nombre%'[/B]
va bien...
¿que puede pasar?