SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: nurrosa en Martes 5 de Octubre de 2010, 19:35

Título: Formulario en Php con Mysql
Publicado por: nurrosa en Martes 5 de Octubre de 2010, 19:35
Soy nueva en tema foros, asi que espero, ser clara. Agradezco totalmente a quien me pueda dar un ayuda, por favor.

Lo que quiero lograr es que se combinen el resultado de 2 select, o sea lo que eligo del 1ro. y el 2do. me den como resultado un registro de mi Base de Datos.
Antes de copiar el codigo, les cuento que el primer select, funciona bien, pero no funciona el 2do.
El archivo es index.php, o sea vuelve sobre si mismo.

<?php
     include ('conexion.php');   
?>
<html>
<body>
<form name="form1" method="post" action="index.php">
   <label>
   Ciudad:
   <select name="selZonas" id="selZonas">
      <option value="-1" selected>Todas</option>
<?php
   $tablazona = mysql_query("SELECT * FROM zona ORDER BY nombre ASC"); // Seleccionamos las zona de la tabla zona
   while ($registrociudad = mysql_fetch_array($tablazona)) { // Vamos a repetir una Option (opcion), de la Lista Desplegable, por cada ciudad en la tabla
?>
      <option value="<?php echo $registrociudad['id']; ?>"><?php echo $registrociudad['nombre']; ?></option>
<?php
   } // termina la zona de repeticion
   mysql_free_result($tablazona); // se libera la memoria usada por la tabla
?>
   </select>
    </label>
    <br><br>
   
   <label>Barrio:
   <select name="selBarrios" id="selBarrios">
      <option value="-1" selected>Todas</option>
<?php
   $tablabarrios = mysql_query("SELECT * FROM barrios ORDER BY nombreB ASC"); // Seleccionamos las ciudades de la tabla ciudades
   while ($registrobarrio = mysql_fetch_array($tablabarrios)) { // Vamos a repetir una Option (opcion), de la Lista Desplegable, por cada ciudad en la tabla
?>
      <option value><?php echo $registrobarrio['nombreB']; ?></option>
<?php
   } // termina la zona de repeticion
   mysql_free_result($tablabarrios); // se libera la memoria usada por la tabla
?>
   </select>

</label>
   <input type="submit" name="cmdBuscar" id="cmdBuscar" value="IR">
</form>
<table border="1">
<tr>
<td>ID Propiedad </td>
<td>Dirección</td>
<td>Zona</td>
<td>Barrio</td>
<td>Descripci&oacute;n</td>
<td>Precio</td>
</tr>
<?php
if (intval($_POST['selZonas']) >= 2)  {
   $sql = "SELECT inmobiliaria.*, zona.* FROM inmobiliaria, zona WHERE inmobiliaria.idzona = zona.id ";
   $sql .= " AND inmobiliaria.idzona = '" . intval($_POST['selZonas']) . "'";
}
if ((intval($_POST['selZonas']) < 2) && (intval($_POST['selBarrios']) > 0)) {      
   $sql = "SELECT inmobiliaria.*, zona.*, barrios.* FROM inmobiliaria, zona, barrios WHERE inmobiliaria.idbarrios = barrios.id ";   
   $sql .= " AND inmobiliaria.idbarrios = '" . intval($_POST['selZonas'])  . intval($_POST['selBarrios']) . "'";   
}
$sql .= " ORDER BY zona.nombre, barrios.nombreB ASC";
$tabla = mysql_query($sql)or die(mysql_error());
while ($registro = mysql_fetch_array($tabla))
{
?>
<tr>
<td><?php echo $registro['id']; ?></td>
<td><?php echo $registro['direccion']; ?></td>
<td><?php echo $registro['idzona']; ?>) <?php echo $registro['nombre']; ?></td>
<td><?php echo $registro['idbarrios']; ?>) <?php echo $registro['nombreB']; ?></td>
<td><?php echo $registro['descrip']; ?></td>
<td>Venta: <?php echo $registro['precio']; ?> / Renta: <?php echo $registro['precio']; ?></td>
</tr>
<?php
}
//mysql_free_result($tabla);
mysql_close($conexion);
?>
</table>
</body>
</html>

Muchas, pero muchas gracias y espero tener suerte. :rolleyes:
Título: Re: Formulario en Php con Mysql
Publicado por: LeGatoRojo en Lunes 1 de Noviembre de 2010, 20:28
Por que no intentas con JOIN
Código: SQL
  1.  
  2.  
  3. SELECT
  4. *
  5. FROM inmobiliaria
  6. JOIN zonas ON inmobiliaria.idzona = zona.id
  7. JOIN barrios ON inmobiliaria.idbarrios = barrios.id
  8.  
  9.  
  10.  
Título: Re: Formulario en Php con Mysql
Publicado por: nurrosa en Lunes 1 de Noviembre de 2010, 20:38
Muchisimas gracias. Lo probare.
perdon por la demora en contestar.
Muchas. muchas gracias