Estoy creando un buscador con dos niveles combo-box y un input de texto.
Si busco solo con el input de texto busca pero si selecciono de los menus desplegables lo que me hace es sacarme todo lo que tengo en la base de datos.
Tengo una base de datos mysql con las tablas "search" donde estan todos los clientes, "provincia" para desplegar las provincias en el menu desplegable y "poblacion" para desplegar las poblaciones acorde con la provincia relaccionada que eso va bien y relacciona y despliega.
Conectar:
Código PHP:
<?php
function conectar()
{
mysql_connect("localhost", "root", "");
mysql_select_db("gsp");
}
function desconectar()
{
mysql_close();
}
?>
Proceso Combo-box:
Código PHP:
<?php
// Array que vincula los IDs de los selects declarados en el HTML con el nombre de la tabla donde se encuentra su contenido
$listadoSelects=array(
"sprovincia"=>"provincia",
"spoblacion"=>"poblacion"
);
function validaSelect($selectDestino)
{
// Se valida que el select enviado via GET exista
global $listadoSelects;
if(isset($listadoSelects[$selectDestino])) return true;
else return false;
}
function validaOpcion($opcionSeleccionada)
{
// Se valida que la opcion seleccionada por el usuario en el select tenga un valor numerico
if(is_numeric($opcionSeleccionada)) return true;
else return false;
}
$selectDestino=$_GET["select"]; $opcionSeleccionada=$_GET["opcion"];
if(validaSelect($selectDestino) && validaOpcion($opcionSeleccionada))
{
$tabla=$listadoSelects[$selectDestino];
include 'conexion.php';
conectar();
$consulta=mysql_query("SELECT id, opcion FROM $tabla WHERE relacion='$opcionSeleccionada'") or die(mysql_error());
desconectar();
// Comienzo a imprimir el select
echo "<select name='".$selectDestino."' id='".$selectDestino."' onChange='cargaContenido(this.id)'>";
echo "<option value='0'>Elige</option>";
while($registro=mysql_fetch_row($consulta))
{
// Convierto los caracteres conflictivos a sus entidades HTML correspondientes para su correcta visualizacion
$registro[1]=htmlentities($registro[1]);
// Imprimo las opciones del select
echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
}
echo "</select>";
}
?>
Formulario Imprimir Combo-box:
Código PHP:
<?php
function generaPaises()
{
include '../select2n/conexion.php';
conectar();
$consulta=mysql_query("SELECT id, opcion FROM provincia");
desconectar();
// Voy imprimiendo el primer select compuesto por los provincia
echo "<select name='sprovincia' id='sprovincia' onChange='cargaContenido(this.id)'>";
echo "<option value='0'>Elige</option>";
while($registro=mysql_fetch_row($consulta))
{
echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
}
echo "</select>";
}
?>
<form action="../l/searchresults.php" name="form1" id="form1">
<div id="demoDer">
<select disabled="disabled" name="spoblacion" id="spoblacion">
<option value="0">Selecciona opción...</option>
</select>
</div>
<div id="demoIzq"><?php generaPaises(); ?></div>
<div id="txtfild">
<input type="text" name="k" id="searchtxt" style="width:150px;" />
<input type="submit" name="searchbtn" id="searchbtn" value="Buscar" />
</div>
</form>
<?php
$k = $_GET['k, sprovincia, spoblacion'];
$terms = explode(" ", $k);
$query = "SELECT * FROM search WHERE ";
foreach ($terms as $each) {
$i++;
if ($i == 1){
$query .= "keywords OR id LIKE '%$each%' ";
}
else{
$query .= "OR keywords OR id LIKE '%$each%' ";
}
}
//connect
mysql_connect("mysql.hostinger.es", "u521948433_gsp", "JA9800ja@@@");
mysql_select_db("u521948433_gsp");
$query = mysql_query($query);
$numrows = mysql_num_rows($query);
echo "Número de resultados: $numrows para la busqueda <strong>$k</strong>";
if ($numrows > 0) {
while ($row = mysql_fetch_assoc($query)) {
$id = $row['id'];
$title = $row['opcion'];
$description = $row['description'];
$keywords = $row['keywords'];
$link = $row['link'];
echo "<h2><a href='$link'>$title</a></h2>
$description<br /><strong> $link </strong><br /><br />";
}
}
?>
No se como hacer para que me guarde todo lo de los campos ya seleccionados y buscar la tabla search y que me muestre las coincidencias.
Muchas gracias de anticipado y espero que porfavor alguien me ayude ya que estoy volviendome loco y no doy mas de si.
Mil gracias mil gracias de corazon.