Foros del Web » Programando para Internet » PHP »

Consultar campo de una tabla con datos de otra tabla

Estas en el tema de Consultar campo de una tabla con datos de otra tabla en el foro de PHP en Foros del Web. Buenas: Me encuentro con un problema, desde un formulario selecciono las localidades (origen, destino) la cual las obtengo de una consulta, solo les muestro la ...
  #1 (permalink)  
Antiguo 10/08/2017, 08:30
 
Fecha de Ingreso: febrero-2012
Ubicación: Cancun
Mensajes: 79
Antigüedad: 12 años, 1 mes
Puntos: 0
Consultar campo de una tabla con datos de otra tabla

Buenas:

Me encuentro con un problema, desde un formulario selecciono las localidades (origen, destino) la cual las obtengo de una consulta, solo les muestro la de origen, la de destino es igual:

Código HTML:
Ver original
  1. <p class="origen">
  2.                         <select name="origen"                        
  3.                    <option value="" disabled selected>Seleccione Origen</option>
  4.                         <?php
  5.                        $localidades = mysqli_query($dbservidor,"SELECT * from localidades order by localidad_nombre");
  6.                        while ($resultado = mysqli_fetch_array($localidades)){
  7.                        ?>
  8.                     <option value = "<?php echo $resultado['localidad_id']; ?>"><?php echo strtoupper($resultado['localidad_nombre']); ?></option>
  9.                         <?php
  10.                        }
  11.                        ?>
  12.                     </select>


Con estos datos, necesito dos cosas:

1 - Consultar la tarifa que existe entre estas localidades, la obtengo desde otra tabla "TARIFA_ACTUAL", solo por el ID (localidad_id):

Código SQL:
Ver original
  1. $consulta = mysqli_query($db, "SELECT tarifa_importe FROM tarifa_actual WHERE tarifa_localidad_orig = '".$_POST["origen"]."' AND tarifa_localidad_dest = '".$_POST["destino"]."' ");

2 - Insertar en una tercera tabla tanto las localidades seleccionadas así como la tarifa. Y aquí el problema, me inserta los id de las localidades. Claro porque así lo tengo en el formulario, pero no se como hacer para "convertir" del id a nombre e insertarlo en la tabla. No puedo hacerlo en el formulario porque no podria consultar las tarifas.

TABLA "LOCALIDADES", en donde tengo "LOCALIDAD_ID" y "LOCALIDAD_NOMBRE"

Espero puedan ayudarme con esto.

Muchas gracias, saludos!
  #2 (permalink)  
Antiguo 10/08/2017, 12:07
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Consultar campo de una tabla con datos de otra tabla


Saludo.
Pues en cuanto al primer punto, imagino que el elemento POST llamado destino es el mismo origen segùn entiendo, verdad? De ser así, el query deberá usar entonces el campo en ambas partes.
Si por el contrario es otro elemento en el cual eligen (que debería ser) pues ya esta.

En cuanto al segundo punto, esta bien lo que se tiene, esto porque para eso estan ya las localidades en la tabla de localidades como tal, y en la tercera tabla solo se necesita guardar los ids, y simplemente en la vista que se tenga para consultar la información guardada, lo que se tiene que hacer es un inner join a la tabla de localidades para obtener el nombre uniendo obviamente las localidades con sus respectivos ids.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 11/08/2017, 09:56
 
Fecha de Ingreso: febrero-2012
Ubicación: Cancun
Mensajes: 79
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Consultar campo de una tabla con datos de otra tabla

Gracias mortiprogramador por tu respuesta. Es verdad, podría hacerlo de esa manera. Pero me queda una duda, si yo necesitaría o quisiera poder hacerlo como pensaba. Podría también usar el inner join? (no se bien como funciona).

Intente hacer eso:

Código PHP:
Ver original
  1. $consulta = mysqli_query($db, "SELECT
  2.  
  3. tarifa_actual.tarifa_importe,
  4. O.localidad_nombre AS origen,
  5. D.localidad_nombre AS destino
  6.  
  7. FROM tarifa_actual
  8.  
  9. INNER JOIN localidad AS O ON tarifa_actual.tarifa_localidad_orig=O.localidad_id
  10. INNER JOIN localidad AS D ON tarifa_actual.tarifa_localidad_dest=D.localidad_id
  11. WHERE
  12. tarifa_actual.tarifa_localidad_orig = '".$_POST['origen']."'
  13. AND
  14. tarifa_actual.tarifa_localidad_dest = '".$_POST['destino']."' ");
  15.        
  16. if ($resultado = mysqli_fetch_array($consulta)) {
  17.  
  18.     $resultado['tarifa_importe'];
  19.     $resultado['origen'];
  20.     $resultado['destino'];
  21.  
  22. }

Y la duda esta en si se podria hacer, porque cuando pongo un numero en la condicion where, por ej:
tarifa_actual.tarifa_localidad_orig = 1
AND
tarifa_actual.tarifa_localidad_dest = 2

Me funciona correctamente! Pero cuando pongo los $_POST[''] no. Verifico haciendo un echo por fuera de la consulta que me trae los valores, pero dentro de la consulta no. O tendré algún error porque no me funciona así.

No se que podrá ser. Por eso pregunto si se puede hacer de esta manera.

Gracias! Saludos.

Última edición por agustinpak; 11/08/2017 a las 10:43
  #4 (permalink)  
Antiguo 11/08/2017, 14:26
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Consultar campo de una tabla con datos de otra tabla

Saludo

Bueno, pues claro, puedes cambiarlo a como lo quieras guardar,
podrías usar campos hidden y en ellos guardar los nombres de las localidades.
Estos campos tendrían que ser alimentados al momento de realizar
el evento onChange de los selects enviando el text de los mismos.

En cuanto al query que muestras, pues así debería funcionar correctamente.
Dices que poniendo valores fijos (1 y 2) te funciona bien, pero haciendo uso
de los elementos de $_POST no.

En cuyo caso, propongo que guardes el query (con los $_POST) en una variable $query antes de ejecutar el myqli_query, y le hagas un echo a $query para ver
que es lo que muestra entonces la consulta, y ya que la tengas ahí, copia el query
y lo ejecutas directamente en el motor de la bd para ver que trae.

Si persiste el problema, pues copia aquí el query generado a ver que se ve
de raro, pues en teoría como esta actualmente debería funcionar sin problemas.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: campo, consultar, formulario, mysql, nombre, select, tabla
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 15:13.