CONSULTA DE CONSULTA

leonardo
21 de Junio del 2005
Como hacer una consulta y de los resultados poder hacer un filtro?

Ejemplo: se hace una consulta la cual muestra los hoteles de una ciudad seleccionada por el cliente pero de estos quiero ver solamente los hoteles con 3 estrellas...

Alguien me puede ayudar? Gracias.

iron-phoenix
21 de Junio del 2005
Bueno yo creo que deberias hacerlo con la propia consulta

si tienes el dato en la misma tabla
SELECT * FROM hoteles WHERE estrellas='3'

Si lo tienes en otra tabla (ej: calidad)
SELECT a.* FROM hoteles AS a, calidad AS b WHERE b.estrellas = '3' AND a.id_hotel = b.id_hotel

Si lo que estas preguntando es como escribir Todos los hoteles y luego pulsando un botoncito que salgan solo los de 3 estrellas....
pues o bien recargas la pagina y haces una consulta o bien marcas las TR o los DIV lo que uses con un id='estrellas3' (para los de 3 estrellas, a cada uno su numero correspondiente) y luego podrias ir recorriendo la tabla con javascript y ocultando todas las que no tengan el id que tu quieres.

Eso se haria con getElementById y getChildNode
pregunta en el foro de javascript

Saludos

leonardo
21 de Junio del 2005
La consulta funciona mediante un formulario con una caja en la que se digita la ciudad y una lista de seleccion donde se selecciona las estrellas de servicio que busca.

Ya tengo la consulta pero me genera el siguiente error:

Error en la consulta de conteo de registros: SELECT COUNT(*) FROM hoteles ciudad='bogota' where estrellas='1.gif'. Mysql dijo: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '='bogota' where estrellas='1.gif'' at line 1

El codigo que use es este:

AQUI VA LA CONEXION A LA BD

$_pagi_sql = "SELECT * FROM hoteles ciudad='$ciudad' where estrellas='$estrellas'";
$rs = mysql_query( $_pagi_sql,$con);
$_pagi_cuantos = 7;
include("paginator.inc.php");



if (mysql_num_rows($rs)!=0){
while($row = mysql_fetch_array($rs)) {
printf("<table><tr><td>%s</td><td>%s</td><td>%s</td></tr></table>",$row["ciudad"],$row["estrellas"],$row["nombre"]);
}
}else{
header ("Location: notivias.html");
}

//Incluimos la barra de navegación


mysql_free_result($_pagi_result);
mysql_close($con);
echo"<p><font size=2 face=Arial, Helvetica, sans-serif>&nbsp;&nbsp;".$_pagi_navegacion."</font></p>";
?>

eth0
21 de Junio del 2005
La consulta debería ser así:

SELECT * FROM hoteles WHERE ciudad='$ciudad' AND estrellas='$estrellas'

leonardo
21 de Junio del 2005
Tengo el siguiente codigo pero no me genera ningun error, Tampoco me muestra los datos Que puede ser?

AQUI VA LA CONEXION A LA BD//

$_pagi_sql = "SELECT * FROM hoteles WHERE estrellas='$star' AND ciudad='$id'";
$_pagi_cuantos = 7;
include("paginator.inc.php");
?>
<table width=100% border="0" cellpadding="0" cellspacing="3">
<?php
while($row = mysql_fetch_array($_pagi_result)) {
printf("<tr><td>%s</td><td>%s</td><td>%s</td></tr>",$row["ciudad"],$row["estrellas"],$row["nombre"]);
}
//Incluimos la barra de navegación
mysql_free_result($_pagi_result);
mysql_close($con);
?>
<?php echo"<p><font size=2 face=Arial, Helvetica, sans-serif>&nbsp;&nbsp;".$_pagi_navegacion."</font></p>";?>
</body>
</html>


Loop
21 de Junio del 2005
Mm, me imagino que en paginator.inc.php es donde se encuentra el query no ? bien podría ser que el error estuviera ahí, a simple vista no logro ver una falla en lo que mandas, (siempre y cuando exista la db y las tablas con sus campos. que sería ilógico que no fuese así ), pero es bueno ayudarse mientras estás creando la pág con mysql_error(); no sé si lo estés usando, probablemente el error viene del query, otro factor que puede afectar en este caso es el uso de $_ que en ciertas versiones de php es muy suceptible al uso de estas líneas al iniciar la variable, y por lo que veo las usas para todo, es válido usarlas, pero no se recomienda, a exepción de las previamente definidas por php claro...! $_POST $_GET etcétera.