Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Consulta: tabla 1 + tabla 2 = resultado común

Estas en el tema de Consulta: tabla 1 + tabla 2 = resultado común en el foro de Bases de Datos General en Foros del Web. Hola: Necesito hacer algo que, por lo que observado en el foro es muy solicitado, pero veo que cada caso es muy particular. De antemano, ...
  #1 (permalink)  
Antiguo 02/08/2004, 10:12
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 22 años
Puntos: 0
Consulta: tabla 1 + tabla 2 = resultado común

Hola:

Necesito hacer algo que, por lo que observado en el foro es muy solicitado, pero veo que cada caso es muy particular. De antemano, mis conocimientos en el área son casi nulos...

Se trata de mostrar los itinerarios de vuelo para lineas aereas.

Tabla 1 (origen)

ID
Linea
Avion
Salida
Llegada
Frecuencia


Tabla 2 (destino)
Linea
Avion
Salida
Llegada
Frecuencia

(no se si están bien construidas las tablas para el propósito)

Que se necesita:

Por ejemplo, en un menu desplegable (tabla 1 - origen) seleccionar el sitio del que parte el turista, por ejemplo Buenos Aires. Luego, seleccionar en otro menu (tabla 2 - destino) el sitio al que quiere viajar el turista, por ejemplo Miami. Un botón mostrar que al hacer "submit" muestre entonces, en una tabla, los vuelos disponibles desde Buenos Aires hacia Miami, con el tipo de avión, hora de salida, de llegada, etc.

Supongo he sido suficientemente claro.

Hacer los menú con la información de cada tabla, lo tengo dominado. Lo que no se es después de allí, generar la consulta adecuada para mostrar el resultado y cómo mostrarlo en tabla (tipo excel o word)

Como ejemplo, les dejo este link que refleja precisamente lo que necesito:


http://www.avior.com.ve/

entrar en Itinerarios y Tarifas
Gracias
  #2 (permalink)  
Antiguo 02/08/2004, 10:26
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 22 años, 4 meses
Puntos: 0
Por lo que vi en la pagina, ya tienes los valores asociados al id de origen y al id de destino.
Con eso talvez puedas hacer una consulta asi.
Código PHP:
$id_origen $_POST['combobox_origen'];
$id_destino $_POST['combobox_destino'];

$consulta " select * from origen, destino
                  where origen.id = '$id_origen' 
                  and destino.id = '$id_destino' "

Tal vez te pueda servir.

Salu2 !!!
__________________
AK.T.I.V.E.tm Live, Never DIE
  #3 (permalink)  
Antiguo 02/08/2004, 10:32
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 22 años
Puntos: 0
gracias, voy a probar...
  #4 (permalink)  
Antiguo 02/08/2004, 11:05
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 22 años
Puntos: 0
ERROORRRR!!!!

Acabo de notar que las tablas estan muy mal armadas.

En el combo 1 irian todas las ciudades que desee y en el combo 2, irian las mismas ciudades pues, siempre sales de un sitio, vas a otro y vuelves al mismo, o sea:

Creo que es asi...

Tabla 1 (origen)

id_origen
zona_origen (ej. Caracas, Miami, Bogota, etc)
linea_origen (linea aerea)
vuelo_origen (obvio, el vuelo)
salida_origen (solo hora de salida, la de llegada iria en la tabla destino)
frecuencia_origen (si es diario, semanal, etc)
escala_origen (si hace o no escala)


Tabla 2 (destino)

id_destino
zona_destino (las mismas de la tabla 1)
linea_destino (las mismas de la tabla 1)
vuelo_destino (las mismas de la tabla 1)
llegada_destino (solo hora de llegada, la de salida iria en la tabla origen)
frecuencia_destino (las mismas de la tabla 1)
escala_destino (las mismas de la tabla 1)

Luego el botón Mostrar, que buscará y mostrará (esto es lo que no se cómo hacer) todos los datos (linea aerea, vuelo, frecuencia, escala, HORA DE SALIDA, HORA DE LLEGADA) desde por ejemplo Caracas a Bogotá.

Si meto al revés, Bogotá como origen y Caracas como destino, me saldría entonces los mismos datos, sólo que los horarios de salida y llegada serían diferentes.

No se si voy bien o es sólo que estoy TOTALMENTE CONFUSO...

Por favor, espero su ayuda!!
  #5 (permalink)  
Antiguo 02/08/2004, 11:08
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 22 años
Puntos: 0
Cómo es que tengo dos mensajes de lo mismo? será que lo escribí dos veces?
o ya me estoy volviendo tan loco que no se lo que hago?
  #6 (permalink)  
Antiguo 02/08/2004, 11:14
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 21 años, 3 meses
Puntos: 2
Para que lo consigas, todo depende de lo que quieras hacer.
A mi, de entrada, me parece más lógico tener una tabla de ciudades (que puedes ser origen y/o destino) y una tabla de vuelos, que indican el código de vuelo, ciudad de origen, ciudad de destino, avión, horario, línea aérea, ...

Un saludo.
  #7 (permalink)  
Antiguo 02/08/2004, 13:20
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 22 años
Puntos: 0
suena lógico... probaré.

Por ahora he logrado este código:

forma...

<form action="prueba2.php" method="post" enctype="multipart/form-data" name="itinerarios">
<p>
<select name="origen" size="1" id="origen">
<option value="Caracas" selected>Caracas</option>
<option value="Acarigua">Acarigua</option>
</select>
</p>
<p>
<select name="destino" size="1" id="destino">
<option value="Acarigua" selected>Acarigua</option>
<option value="Caracas">Caracas</option>
</select>
</p>
<p>&nbsp;</p>
<p>
<input type="submit" name="Submit" value="Mostrar">
</p>
</form>


Al submit...

Código PHP:
<?
include("config.php");
   
$sql="SELECT * FROM origen inner join destino on origen.vuelo_origen=destino.vuelo_destino"
$res=mysql_query($sql);
 
while(
$row=mysql_fetch_array($res)) 

    echo 
"Linea Aerea: ".$row['linea_destino']."<br>";
    echo 
"Vuelo: ".$row['vuelo_destino']."<br>";
    echo 
"Salida: ".$row['salida_origen']."<br>";
    echo 
"Llegada: ".$row['llegada_destino']."<br>";
    echo 
"Frecuencia: ".$row['frecuencia_destino']."<br>";
    echo 
"Avión: ".$row['avion_destino']."<br>";
    echo 
"Escala: ".$row['escala_destino']."<br>";
    }
?>
Me muestra hasta lo que no le pedí. Es decir, hay 3 vuelos de Acarigua a Caracas y 2 de Caracas a Acarigua; en los combo box coloco origen Acarigua y destino Caracas... pues solo deberían salir 3 vuelos y me sale esto:

Linea Aerea: LAI
Vuelo: 402
Salida: 10:30
Llegada: 11:15
Frecuencia: DI
Avión: ATR
Escala: 0
Linea Aerea: LAI
Vuelo: 404
Salida: 14:00
Llegada: 14:45
Frecuencia: DI
Avión: ATR
Escala: 0
Linea Aerea: LAI
Vuelo: 401
Salida: 07:10
Llegada: 07:55
Frecuencia: DI
Avión: ATR
Escala: 0
Linea Aerea: LAI
Vuelo: 403
Salida: 12:55
Llegada: 13:40
Frecuencia: DI
Avión: ATR
Escala: 0
Linea Aerea: LAI
Vuelo: 406
Salida: 18:10
Llegada: 18:55
Frecuencia: DI
Avión: ATR
Escala: 0

AUXILIOOO!!!!!
  #8 (permalink)  
Antiguo 02/08/2004, 18:45
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 22 años
Puntos: 0
ahora lo tengo en orden pero me sigue arrojando todos los resultados. Se que me falta algo antes del select pero no estoy claro en que cosa...

Código PHP:
<?
include("config.php");
   
$sql="SELECT * FROM origen inner join destino on origen.hacia=destino.hacia ORDER BY salida"
$res=mysql_query($sql);

    echo 
"<table border=1 cellpadding=2 cellspacing=0 bordercolor=#006699>";
    echo 
"<tr valign=middle><td align=center width=100>LINEA AEREA</td>";
    echo 
"<td align=center width=50>VUELO</td>";
    echo 
"<td align=center width=100>SALIDA</td>";
    echo 
"<td align=center width=100>LLEGADA</td>";
    echo 
"<td align=center width=50>FRECUENCIA</td>";
    echo 
"<td align=center width=50>AVION</td>";
    echo 
"<td align=center width=50>ESCALA</td></tr><br>";
    echo 
"</table>";
 
while(
$row=mysql_fetch_array($res)){
 
    echo 
"<table border=1 cellpadding=2 cellspacing=0 bordercolor=#006699>";
    echo 
"<tr valign=middle><td align=center width=100>".$row['linea']."</td>";
    echo 
"<td align=center width=50>".$row['vuelo']."</td>";
    echo 
"<td align=center width=100>".$row['salida']."</td>";
    echo 
"<td align=center width=100>".$row['llegada']."</td>";
    echo 
"<td align=center width=50>".$row['frecuencia']."</td>";
    echo 
"<td align=center width=50>".$row['avion']."</td>";
    echo 
"<td align=center width=50>".$row['escala']."</td></tr>";
    }
    echo 
"</table>";
?>
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 23:16.