Foros del Web » Programando para Internet » PHP »

combobox y seleccion de registros

Estas en el tema de combobox y seleccion de registros en el foro de PHP en Foros del Web. Como sabemos, para seleccionar todos los campos de una base de datos debemos hacer esto: mysql_connect("localhost","",""); result=mysql_db_query("basedatos","Select * From tabla")... ahora, el problema que tengo ...
  #1 (permalink)  
Antiguo 25/06/2004, 20:02
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 15 años
Puntos: 5
combobox y seleccion de registros

Como sabemos, para seleccionar todos los campos de una base de datos debemos hacer esto:

mysql_connect("localhost","","");
result=mysql_db_query("basedatos","Select * From tabla")...

ahora, el problema que tengo es que tengo un combobox que le indica a un usuario el numero de habitaciones que quiere para una propiedad... los valores del combobox son:

*no aplica
*1-3
*4-6
*mas de 6

pregunto: ¿como hago para que solo se muestren las propiedades de 1-3 habitaciones o 4-6 habitaciones o mas de 6 habitaciones???

¿como seria el result=mysql_db_query ("basedatos"... etc etc etc ????

muchas gracias
  #2 (permalink)  
Antiguo 25/06/2004, 20:16
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
Pues yo veo dos maneras de hacerlo. La más "cutre" es comparar literales y en tu caso sería una cosa así:

select * from tabla where numHabitaciones<>"no aplica"

Para mi la forma más elegante sería poner un campo en el que asignaría un id a cada opción del combo. Suponiendo que a "no aplica" le asignasemos el id 0 sería tan sencillo como esta sentencia:

select * from tabla where id<>0

En el caso de descartar varias opciones habría que unir las condiciones con OR_

select * from tabla where id<>0 OR id<>5 OR id<>6
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #3 (permalink)  
Antiguo 25/06/2004, 23:00
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 15 años
Puntos: 5
Muchas gracias, es justo lo que buscaba....

ahora, como seria con tres comboboxes con los siguientes valores:

combo1 (tipo de propiedad):
*Terreno
*Casa
*Terreno con construccion
*Recreacional o Playa
*Agricola o Finca
*Locales o edificios
*Lotificacion
*Otros inmuebles

combo2 (extension):
*cualquiera
*0 a 199 v2
*200 a 499 v2
*500 a 999 v2
*1000 a 4,999 v2
*½ manzana a 9,999 v2
*1 a 10 manzanas
*11 a 50 manzanas
*mas de 50 manzanas

combo3 (Numero de habitaciones)
*no se aplica
*1-3
*4-6
*mas de 6

solo necesito una pequeña explicacion o algun link... por favor................... muchas gracias
  #4 (permalink)  
Antiguo 26/06/2004, 04:56
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
Ahora que estoy releyendo tu post creo que no te contesté adecuadamente, tú no quieres sacar los valores del combo de la base de datos sino que quieres hacer un select dependiendo de los valores que seleccione en los combos. El formulario lo tienes así declarado:
Código HTML:
<form method="post" action="sacarPropiedades.php">
<select name="tipo">
<option value="0">Terreno</option>
<option value="1">Casa</option>
<option value="2">Terreno con construccion</option>
<option value="3">Recreacional o Playa</option>
<option value="4">Agricola o Finca</option>
<option value="5">Locales o edificios</option>
<option value="6">Lotificacion</option>
<option value="7">Otros inmuebles</option>
</select>
<select name="extension">
<option value="0">cualquiera </option>
<option value="1">0 a 199 v2</option>
//así tendrías que hacer con el resto de valores
</select> 

<select name="numHabitaciones">
<option value="0">no se aplica</option>
<option value="1">1-3</option>
<option value="2">4-6</option>
//así tendrías que hacer con el resto de valores
</select> 
</form> 
Después en tu página sacarPropiedades.php tendrías que tener algo parecido a esto:
Código PHP:
$numHabitaciones=$_POST["numHabitaciones"];
$extension=$_POST["extension"];
$tipo=$_POST["tipo"];

$clausulaWhere="tipo='$tipo'";
if (
$numHabitaciones!=0){
$clausulaWhere.=" AND numHabitaciones='$numHabitaciones'"
}

if (
$extension!=0){
$clausulaWhere.=" AND extension='$extension'"
}
$query="select *from tabla where ".$clausulaWhere
Se supone a todo esto que en tu base de datos guadar en los campos los valores que has puesto en los select. Es decir
una propiedad que tenga de 4-6 habitaciones guarda como valor en su campo numHabitaciones el numero 2.

Tendrías que hacer alguna comprobaciones más pero para empezar lo que te he puesto valdría.
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #5 (permalink)  
Antiguo 26/06/2004, 20:39
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 15 años
Puntos: 5
Hola, muchas gracias por la ayuda, pero ahora me muestra el siguiente error:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ruta\catalogo.php on line 20

el supuesto error esta en negrita... ya probe muchas cosas pero no se que hacer para solucionarlos, el script que pusiste esta bien, pero no se que pasa... el codigo es:

<?
// Datos de conexión a la base
$base="basedatos";
$conn=mysql_connect("localhost","","");
mysql_select_db($base,$conn);

$numHabitaciones=$_POST["numHabitaciones"];
$extension=$_POST["extension"];
$tipo_propiedad=$_POST["tipo_propiedad"];

$clausulaWhere="tipo_propiedad='$tipo_propiedad'";
if ($numHabitaciones!=0){
$clausulaWhere.=" AND numHabitaciones='$numHabitaciones'";
}
if ($extension!=0){
$clausulaWhere.=" AND extension='$extension'";
}
$query="Select * From propiedades Where".$clausulaWhere;
$result=mysql_db_query("basedatos",$query);
while($fila=mysql_fetch_array($result)){

espero que puedan ayudarme... muchas gracias
  #6 (permalink)  
Antiguo 27/06/2004, 03:29
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
Donde pone 0 ponlo con comillas "0" (siento no habertelo puesto así en mi explicación) pero donde realmente veo el fallo es en
$query="Select * From propiedades Where".$clausulaWhere;

Pon un espacio en blanco después del where

$query="Select * From propiedades Where ".$clausulaWhere;
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #7 (permalink)  
Antiguo 27/06/2004, 15:46
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 15 años
Puntos: 5
Hola... muchas gracias nuevamente... el error (Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ruta\catalogo.php on line 20), ya desaparecio, de hecho era un error mio y no del codigo que escribiste.. ahora el problema es que no me muestra la informacion segun los valores de los comboboxes... no muestra absolutamente nada...

¿que mas debo hacer???... ayuda por favor.............


posdata: si alguien conoce un link, o tiene el codigo etc etc envienmelo por favor....

muchas gracias
  #8 (permalink)  
Antiguo 28/06/2004, 00:36
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
Si me dices el nombre de los campos de la base de datos y sus tipos igual te puedo ayudar más
También si es posible haz un echo de la query y pegalo aquí para ver si hace bien la sentencia select.
__________________
¿Te apasiona el mundo del guión? El portal del guión

Última edición por living; 28/06/2004 a las 00:38
  #9 (permalink)  
Antiguo 28/06/2004, 22:17
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 15 años
Puntos: 5
living, muchas gracias, ahora todo funciona bien... tu ayuda fue fundamental para lograrlo.... gracias
  #10 (permalink)  
Antiguo 29/06/2004, 01:49
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
de nada Ludwingg, hoy por ti mañana por mi
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #11 (permalink)  
Antiguo 29/06/2004, 02:04
Avatar de Kalili  
Fecha de Ingreso: enero-2002
Ubicación: Gate 69
Mensajes: 210
Antigüedad: 15 años, 11 meses
Puntos: 0
Hola Ludwinng

Que error te producia esto

(Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ruta\catalogo.php on line 20),

Porque yo tengo el mismo eroor

Gracias
__________________
saludos
  #12 (permalink)  
Antiguo 29/06/2004, 02:47
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Para resolver ese error deberás fijarte el la línea en que haces el query... debes verificar que la sentencia sql está bien construida, por ejemplo puede faltarte una coma, o pusiste mal el nombre de un campo, o las variables no se están uinterpretando correctamente.... También puedes forzar a que se te muestre el error y se imprima tu sql.
Código PHP:
$sql "SELECT * FROM tabla";
$result mysql_query($sql) or die("error en query $sql . Mysql: ".mysql_error()); 
Con eso podrás ver los errores que puedas tener en tu sql_query.

Saludos
  #13 (permalink)  
Antiguo 29/06/2004, 02:48
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
Ese error puede producirlo cualquier sentencia incorrecta, que tengas quieras sacar un campo que no exista, que esté mal el nombre de la tabla, que no esté bien contruida la query....

Edito para decir que había visto la respuesta anterior, lo siento
__________________
¿Te apasiona el mundo del guión? El portal del guión

Última edición por living; 29/06/2004 a las 03:32
  #14 (permalink)  
Antiguo 01/07/2004, 20:07
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 15 años
Puntos: 5
Kalili, lo que hice fue revisar la variable $query, y las variables que esta pueda tener

Amigo living, ¿Ahora como podria hacer una paginacion con los resultados??? he tratado pero no puedo creo que es debido al $query...

ayudame por favor

muchas gracias

Última edición por Ludwingg; 01/07/2004 a las 20:08
  #15 (permalink)  
Antiguo 02/07/2004, 02:23
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
Hay un caballero por estos lares (jpinedo) que tiene en su firma un script de paginación, seguro que te ahorra mucho trabajo

http://jpinedo.webcindario.com
__________________
¿Te apasiona el mundo del guión? El portal del guión
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 02:38.