buscador que con dos list/menu arroje los resultados

C

Hola a todos.

Necesito hacer un buscador para una inmobiliaria que con tres list/menu, uno para seleccionar la provincia, otro para seleccionar el tipo (venta,alquiler) y otro para seleccionar la categoría de (chalet, piso...) me arroje los resultados a otra página de los productos que sean del tipo, provincia y categoría que previamente haya seleccionado.
os dejo aquí el código, como ya os he solido decir no controlo mucho lo de php, así que necesito que tengáis un poco de paciencia. Gracias por adelantado

<?php require_once('Connections/conexion.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } $colname_producto = "-1"; if (isset($_GET['id'])) { $colname_producto = $_GET['id']; } mysql_select_db($database_conexion, $conexion); $query_producto = sprintf("SELECT producto.id, producto.texto, producto.foto, ciudad.ciudad, provincia.provincia, tipo.tipo FROM producto LEFT JOIN ciudad ON producto.id_ciudad = ciudad.id_ciudad LEFT JOIN provincia ON producto.id_provincia = provincia.id_provincia LEFT JOIN tipo ON producto.id_tipo = tipo.id_tipo WHERE id = %s", GetSQLValueString($colname_producto, "int")); $producto = mysql_query($query_producto, $conexion) or die(mysql_error()); $row_producto = mysql_fetch_assoc($producto); $totalRows_producto = mysql_num_rows($producto); $colname_tipo = "-1"; if (isset($_GET['id_tipo'])) { $colname_tipo = $_GET['id_tipo']; } mysql_select_db($database_conexion, $conexion); $query_tipo = sprintf("SELECT * FROM tipo ", GetSQLValueString($colname_tipo, "int")); $tipo = mysql_query($query_tipo, $conexion) or die(mysql_error()); $row_tipo = mysql_fetch_assoc($tipo); $totalRows_tipo = mysql_num_rows($tipo); $colname_ciudad = "-1"; if (isset($_GET['id_ciudad'])) { $colname_ciudad = $_GET['id_ciudad']; } mysql_select_db($database_conexion, $conexion); $query_ciudad = sprintf("SELECT * FROM ciudad ", GetSQLValueString($colname_ciudad, "int")); $ciudad = mysql_query($query_ciudad, $conexion) or die(mysql_error()); $row_ciudad = mysql_fetch_assoc($ciudad); $totalRows_ciudad = mysql_num_rows($ciudad); $colname_provincia = "-1"; if (isset($_GET['id_provincia'])) { $colname_provincia = $_GET['id_provincia']; } mysql_select_db($database_conexion, $conexion); $query_provincia = sprintf("SELECT * FROM provincia ", GetSQLValueString($colname_provincia, "int")); $provincia = mysql_query($query_provincia, $conexion) or die(mysql_error()); $row_provincia = mysql_fetch_assoc($provincia); $totalRows_provincia = mysql_num_rows($provincia); ?>

y en el body

<div id="texto_empresa2">
    <div id="tipo_buskeda">
      <p>Tipo de busqueda</p>
    </div>
    <div id="tipo_barra">
      <p>
        <label for="lsttipo"></label>
        <select name="lsttipo" id="lsttipo">
          <?php
do {  
?> <option value="<?php echo $row_tipo['id_tipo']?>"<?php if (!(strcmp($row_tipo['id_tipo'], $row_producto['id_tipo']))) {echo "selected=\"selected\"";} ?>><?php echo $row_tipo['tipo']?></option> <?php } while ($row_tipo = mysql_fetch_assoc($tipo)); $rows = mysql_num_rows($tipo); if($rows > 0) { mysql_data_seek($tipo, 0); $row_tipo = mysql_fetch_assoc($tipo); } ?> </select>
</p> </div> <div id="provincia"> <p>Categoría</p> </div> <div id="tipo_provincia"> <p> <select name="lstprovincia" id="lstprovincia"> <?php do {
?> <option value="<?php echo $row_provincia['id_provincia']?>"<?php if (!(strcmp($row_provincia['id_provincia'], $row_tipo['id_provincia']))) {echo "selected=\"selected\"";} ?>><?php echo $row_provincia['provincia']?></option> <?php } while ($row_provincia = mysql_fetch_assoc($provincia)); $rows = mysql_num_rows($provincia); if($rows > 0) { mysql_data_seek($provincia, 0); $row_provincia = mysql_fetch_assoc($provincia); } ?> </select> </p> </div> <label for="lstprovincia"></label> <div id="ciudad"> <p>Lugar</p> </div> <div id="tipo_ciudad"> <p> <label for="lstciudad"></label> <select name="lstciudad" id="lstciudad"> <?php do {
?> <option value="<?php echo $row_ciudad['id_ciudad']?>"<?php if (!(strcmp($row_ciudad['id_ciudad'], $row_tipo['id_ciudad']))) {echo "selected=\"selected\"";} ?>><?php echo $row_ciudad['ciudad']?></option> <?php } while ($row_ciudad = mysql_fetch_assoc($ciudad)); $rows = mysql_num_rows($ciudad); if($rows > 0) { mysql_data_seek($ciudad, 0); $row_ciudad = mysql_fetch_assoc($ciudad); } ?> </select> </p> </div> <input type="submit" name="btnbuscador" id="btnbuscador" value="Buscar" /> </p> </div>
txandy

y la duda es...? O esperas que te lo hagamos nosotros todo?

1 respuesta
Merkury

#2 Me estaba preguntando lo mismo...

#1 De todas formas, solo tienes que enviar las tres variables con el form y luego hacer la consulta de SQL, devolver un array de datos y luego en la página de destino, tratarlos y visualizarlos, no es nada del otro mundo.

De todas formas ahí en el PHP yo creo que veo demasiado código eh XD

Usuarios habituales