Foros del Web » Programando para Internet » PHP »

Variables de busqueda en bases de datos con php

Estas en el tema de Variables de busqueda en bases de datos con php en el foro de PHP en Foros del Web. Hola amigos, no tengo idea de programación, pero he logrado implementar un script elemental para una base de datos en php para el sitio web ...
  #1 (permalink)  
Antiguo 26/11/2003, 17:10
RoL
 
Fecha de Ingreso: febrero-2002
Ubicación: Pamplona (España)
Mensajes: 31
Antigüedad: 15 años, 10 meses
Puntos: 0
Variables de busqueda en bases de datos con php

Hola amigos, no tengo idea de programación, pero he logrado implementar un script elemental para una base de datos en php para el sitio web de una inmobiliaria; y tengo dos preguntas concretas:

1. Ahora mismo tengo la siguiente variable de búsqueda:

$query="SELECT * from $tabla1 where Gestion ='$arreglo[Gestion]' and Inmueble ='$arreglo[Inmueble]' and Zona ='$arreglo[Zona]'";

El campo de busqueda Gestion tiene dos opciones: Compra y Alquiler...Actualmente si le doy a Alquiler me aparecen solo los alquileres para determinada Zona y determinado Inmueble...cómo hago para que me salgan los datos de todos los alquileres sin importar la zona ni el inmueble ?.
El formulario de busqueda es un menú desplegable y tendría que aparecer la opción "todos", tanto en gestion, como en inmmueble, como en zona.

2. Dentro del mismo script cómo hago para que la busqueda me devuelva solo un determinado número de registros por página ? por ej. 30, y que de paso genere el enlace a la siguiente página cuando se pasa de ese valor ?

Muchas gracias por la ayuda..seguro que estas son nociones elementales de programación, y hay que seguir aprendiendo...
  #2 (permalink)  
Antiguo 26/11/2003, 17:19
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

1- Solo pon las condiciones de los que no valen "todos". Es decir, si en zona puso "todas", entonces la consulta seria

$query="SELECT * from $tabla1 where Gestion ='$arreglo[Gestion]' and Inmueble ='$arreglo[Inmueble]'";

2- Usa el buscador del foro y busca por 'paginar' o por 'paginacion'.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 12/12/2003, 14:26
RoL
 
Fecha de Ingreso: febrero-2002
Ubicación: Pamplona (España)
Mensajes: 31
Antigüedad: 15 años, 10 meses
Puntos: 0
Hola Josemi...no entendí muy bien tu respuesta, y por eso te posteo el script que tengo:


<?php
$host="pisos";
$user="usuario";
$pass="****";
$nombreBD="usuario";
$tabla1="zonas";


if($Gestion && $Inmueble){
$condicion = " where Gestion = '$Gestion' and Inmueble = '$Inmueble' and Zona = '$Zona' order by Precio";
}
else{ $condicion = " order by Precio";}

$coneccion=mysql_connect($host,$user,$pass);
$query="SELECT * from $tabla1 where Gestion ='$arreglo[Gestion]' and Inmueble ='$arreglo[Inmueble]' and Zona ='$arreglo[Zona]'";
$resultado1=(mysql_select_db($nombreBD,$coneccion) );
$resultado=(mysql_query($query,$coneccion));

//$resultado=((mysql_select_db($nombreBD,$coneccion) )&(mysql_query($query,$coneccion)));
print("<table border=1 width=\"100%\" cellspacing=1 cellpadding=1 bgcolor=#F0FAFF bordercolor=#00CCFF align=center>");
print("<tr align=center valign=top>");
print("<td align=center valign=top><strong>Gestion</strong></td>");
print("<td align=center valign=top><strong>Inmueble</strong></td>");
print("<td align=center valign=top><strong>Zona</strong></td>");
print("<td align=center valign=top><strong>Metros</strong></td>");
print("<td align=center valign=top><strong>Precio</strong></td>");
//print("<td align=center valign=top>Cantidad</td>");
//print("<td align=center valign=top>Valor</td>");
print("</tr>");

while($fila=mysql_fetch_array($resultado))
{
print("<tr align=center valign=top>");
print("<td align=center valign=top>$fila[Gestion]</td>");
print("<td align=center valign=top>$fila[Inmueble]</td>");
print("<td align=center valign=top>$fila[Zona]</td>");
print("<td align=center valign=top>$fila[Metros]</td>");
print("<td align=center valign=top>$fila[Precio]</td>");
//print("<td align=center valign=top>$fila[cantidad]</td>");
//print("<td align=center valign=top>$fila[valor1]</td>");
}
mysql_close($coneccion);
?>

y el formulario es:

<form name="form" method="post" action="results.php">

<tr>
<td width="81" align="right"
valign="middle"><strong>Gestion:</strong></td>
<td width="10">&nbsp;</td>
<td width="163" align="left" valign="middle">
<select name="arreglo[Gestion]">
<option selected>Todos</option>
<option>Compra</option>
<option>Alquiler</option>
</select> </td>
</tr>

<tr>
<td align="right" valign="middle"><strong>Inmueble:</strong></td>
<td>&nbsp;</td>
<td align="left" valign="middle"> <select name="arreglo[Inmueble]">
<option selected>Todos</option>
option>Piso</option>
option>Casa</option>
<option>Local</option>
</select></td>
</tr>

<tr>
<td align="right" valign="middle"><strong>Zona:</strong></td>
<td>&nbsp;</td>
<td align="left" valign="middle"> <select name="arreglo[Zona]">
<option selected>Todas</option>
<option>Abejeras</option>
<option>Ansoain</option>
<option>Artica</option>
<option>Azpilagaña</option>
<option>Barañain</option>
<option>Berriozar</option>
<option>Burlada</option>

</select></td>
</tr>
</table>
<p>
<input type="submit" name="Submit" value="Enviar">
<input type="reset" name="Submit2" value="Restablecer">
</p>
</form>


Pues eso..la duda es..como modifico el script para realizar la busqueda con la variable "todos (as)", por ej. los alquileres de pisos de todas las zonas..

Muchas gracias por la ayuda..

RoL..
  #4 (permalink)  
Antiguo 12/12/2003, 16:09
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Bueno, crea la condicion dinamicamente:
Código PHP:
$condicion='';
if (
"Todos"!=$_POST['arreglo']['Gestion']) {
  
$condicion="Gestion='{$_POST['arreglo']['Gestion']}'":
}
if (
"Todos"!=$_POST['arreglo']['Immueble']) {
  if (
''!=$condicion$condicion.=' AND ';
  
$condicion.="Immueble='{$_POST['arreglo']['Immueble']}'":
}
if (
"Todas"!=$_POST['arreglo']['Zona']) {
  if (
''!=$condicion$condicion.=' AND ';
  
$condicion.="Zona='{$_POST['arreglo']['Zona']}'":
}
if (
''!=$condicion$condicion=' WHERE '.$condicion;

$coneccion=mysql_connect($host,$user,$pass);
$query="SELECT * from $tabla1 ".$condicion;
$resultado1=(mysql_select_db($nombreBD,$coneccion)
);
$resultado=(mysql_query($query,$coneccion)); 
Creo que el codigo se entiende bien.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 14/12/2003, 15:21
RoL
 
Fecha de Ingreso: febrero-2002
Ubicación: Pamplona (España)
Mensajes: 31
Antigüedad: 15 años, 10 meses
Puntos: 0
Hice los cambios pero no me funciona. te posteo de nuevo el script con los cambios, igual el error es mio..gracias..


<?php
$host="pisos";
$user="usuario";
$pass="****";
$nombreBD="usuario";
$tabla1="zonas";


if($Gestion && $Inmueble){
$condicion = " where Gestion = '$Gestion' and Inmueble = '$Inmueble' and Zona = '$Zona' order by Precio";
}
else{ $condicion = " order by Precio";}


$condicion='';
if ("Todos"!=$_POST['arreglo']['Gestion']) {
if (''!=$condicion) $condicion.=' AND ';
$condicion="Gestion='{$_POST['arreglo']['Gestion']}'":
}
if ("Todos"!=$_POST['arreglo']['Inmueble']) {
if (''!=$condicion) $condicion.=' AND ';
$condicion.="Inmueble='{$_POST['arreglo']['Immueble']}'":
}
if ("Todas"!=$_POST['arreglo']['Zona']) {
if (''!=$condicion) $condicion.=' AND ';
$condicion.="Zona='{$_POST['arreglo']['Zona']}'":
}
if (''!=$condicion) $condicion=' WHERE '.$condicion;

$coneccion=mysql_connect($host,$user,$pass);
$query="SELECT * from $tabla1 ".$condicion;
$resultado1=(mysql_select_db($nombreBD,$coneccion)
);
$resultado=(mysql_query($query,$coneccion));


// $resultado=((mysql_select_db($nombreBD,$coneccion)
)&(mysql_query($query,$coneccion)));
print("<table border=1 width=\"100%\" cellspacing=1 cellpadding=1 bgcolor=#F0FAFF bordercolor=#00CCFF align=center>");
print("<tr align=center valign=top>");
print("<td align=center valign=top><strong>Gestion</strong></td>");
print("<td align=center valign=top><strong>Inmueble</strong></td>");
print("<td align=center valign=top><strong>Zona</strong></td>");
print("<td align=center valign=top><strong>Metros</strong></td>");
print("<td align=center valign=top><strong>Precio</strong></td>");
//print("<td align=center valign=top>Cantidad</td>");
//print("<td align=center valign=top>Valor</td>");
print("</tr>");

while($fila=mysql_fetch_array($resultado))
{
print("<tr align=center valign=top>");
print("<td align=center valign=top>$fila[Gestion]</td>");
print("<td align=center valign=top>$fila[Inmueble]</td>");
print("<td align=center valign=top>$fila[Zona]</td>");
print("<td align=center valign=top>$fila[Metros]</td>");
print("<td align=center valign=top>$fila[Precio]</td>");
//print("<td align=center valign=top>$fila[cantidad]</td>");
//print("<td align=center valign=top>$fila[valor1]</td>");
}
mysql_close($coneccion);
?>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:07.