Foros del Web » Programando para Internet » PHP »

realizar consulta a dos tablas y mostrar resultado

Estas en el tema de realizar consulta a dos tablas y mostrar resultado en el foro de PHP en Foros del Web. Hola a todos tengo un problema gigantesco.. ya he consultado en le foro para ver si existe algun caso similar, y lo que encontre me ...
  #1 (permalink)  
Antiguo 19/07/2015, 13:32
 
Fecha de Ingreso: noviembre-2004
Mensajes: 249
Antigüedad: 19 años, 5 meses
Puntos: 1
realizar consulta a dos tablas y mostrar resultado

Hola a todos tengo un problema gigantesco.. ya he consultado en le foro para ver si existe algun caso similar, y lo que encontre me ayudo a buscar algo al respecto Consultar dos tablas en un SELECT en una misma base de Datos por loq ue hize el ejemplo tal cual, pero no me dio resultado...

Aca pongo el Script:

Código PHP:
<? include("seguridad.php");?>
<?php 
require_once('conexion.php');
$cn=  Conectarse();
$listado=  mysql_query("SELECT *FROM registro",$cn);
?>
 <script type="text/javascript" language="javascript" src="js/jslistadopaises.js"></script>
 <table cellpadding="0" cellspacing="0" border="0" class="display" id="tabla_lista_paises">
     <thead>
                    <tr>
                        <th width="4">NUMERO</th>
                        <th width="20">CONSULTA</th>
                        <th width="20">FECHA</th>
                        <th width="20">HORA</th>
                        <th width="20">IP</th>
                        <th width="20">ESTADO</th>
                        <!--Estado-->
                    </tr>
                </thead>
                <tbody>
                    <?php

     
                   
while($reg=  mysql_fetch_array($listado))
                   {
                               echo 
'<tr>';
                               echo 
'<td >'.mb_convert_encoding($reg['id'], "UTF-8").'</td>';
                               echo 
'<td >'.mb_convert_encoding($reg['consulta'], "UTF-8").'</td>';
                               echo 
'<td>'.mb_convert_encoding($reg['fecha'], "UTF-8").'</td>';
                               echo 
'<td>'.mb_convert_encoding($reg['hora'], "UTF-8").'</td>';
                               echo 
'<td>'.mb_convert_encoding($reg['ip'], "UTF-8").'</td>';
                               
//--------------------------------------------------------------------------
                            
echo '<td>';
//if($reg['consulta'] == "PPI97C" ) {
if($reg['consulta'] == $reg['placa'] ) {
               
// echo "<a href=ver.php?id=$reg[id]><img src=./iconos/verificar.png width=71 height=16 /></a>";
                  
echo "Existe";
//}elseif($reg['consulta'] == "72431372" ) {
    
}elseif($reg['consulta'] == $reg['cedula'] ) {
                echo 
"Existe";
    } else { 
                 echo 
"No Existe";                
}
'</td>';
                               echo 
'</tr>';
                     
                        }
                    
?>
                <tbody>
            </table>

lo que quiero hacer es tomar de la tabla datosmultas los campos Placa y Cedula y compararlos con la consulta agregados en la tabla registro. y mostrar Existe o No existe dependiendo de la consulta optenida.

las tablas que tengo son: datosmultas (id, cedula, placa)
registro: (id, consulta, fecha)

he hechoe l SELECT asi segun lo vi en un manual de como hacer consultas a dos tablas en una misma base de datos y no me resulta:


Código PHP:
$listado=  mysql_query("SELECT registro.id, registro.fecha, registro.consulta, datosmultas.id, datosmultas.cedula, datosmultasplaca FROM registro,datosmultas",$cn); 
aca el archivo conexion.php

Código PHP:
Ver original
  1. <?php
  2. function Conectarse(){
  3. $servidor="localhost";
  4. $basededatos="basededatos";
  5. $usuario="usuario";
  6. $clave="8523666";
  7. $cn=mysql_connect($servidor,$usuario,$clave) or die ("Error conectando a la base de datos");
  8. mysql_select_db($basededatos ,$cn) or die("Error seleccionando la Base de datos");
  9. mysql_query ("SET NAMES 'utf8'");
  10. return $cn;}
  11. ?>


que me hace falta para que funcione...
  #2 (permalink)  
Antiguo 19/07/2015, 13:38
 
Fecha de Ingreso: junio-2015
Mensajes: 54
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: realizar consulta a dos tablas y mostrar resultado

quiza con un inner join puedas solucionar tu problema.
  #3 (permalink)  
Antiguo 19/07/2015, 14:31
 
Fecha de Ingreso: noviembre-2004
Mensajes: 249
Antigüedad: 19 años, 5 meses
Puntos: 1
Respuesta: realizar consulta a dos tablas y mostrar resultado

Hola amigo user_fdw gracias por responder, estoy leyendo algo de inner join pero aun no doy en mi ejemplo

mis tablas son:

Tabla1: datosmultas: (de las cuales tengo los campos que necesito: cedula, placa).
Tabla2: registro: (que tengo los campos: id, fecha, ip, hora, consulta)

en el campo consulta de la tabla2 registro se agregan los valores a comparar con Cedula y Placa de la tabla1 datosmultas

Última edición por flashtrix; 19/07/2015 a las 14:43
  #4 (permalink)  
Antiguo 19/07/2015, 18:33
 
Fecha de Ingreso: junio-2015
Mensajes: 54
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: realizar consulta a dos tablas y mostrar resultado

aclarame algo, el atributo consulta de la tabla registro q contiene? las dos tablas tienen algun tipo de relacion mediante una clave foranea?

Última edición por user_fdw; 19/07/2015 a las 18:34 Razón: error
  #5 (permalink)  
Antiguo 19/07/2015, 22:11
 
Fecha de Ingreso: noviembre-2004
Mensajes: 249
Antigüedad: 19 años, 5 meses
Puntos: 1
Respuesta: realizar consulta a dos tablas y mostrar resultado

lo explicare en este gráfico:



las consultas que se hacen ya sea por cedula o por placa, se hacen a una tabla principal, (datosmultas).

también se guarda en otra tabla de control (registro); lo que se busque, exista o no exista en la tabla principal se guarda en esta. para llevar un control o inventario de lo que se ha buscado... se guarda en este campo consulta de esta tabla. (sea placa o cedula)

lo que pretendo con lo que quiero hacer es que al hacer una consulta a la tabla de control registro aparezca el inventario de todo lo que se ha buscado o consultado en la tabla principal... (ya eso me funciona hasta aquí); y lo que aun no resuelvo es que a todo lo que se ha buscado, se muestre si existe o no en la tabla principal.


Última edición por flashtrix; 19/07/2015 a las 22:21
  #6 (permalink)  
Antiguo 20/07/2015, 06:50
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: realizar consulta a dos tablas y mostrar resultado

la segunda imagen no la entendi mucho, pero en la primera solo debes hacer el insert antes de realizar la consulta a tu base
__________________
[email protected]
HITCEL
  #7 (permalink)  
Antiguo 20/07/2015, 09:19
 
Fecha de Ingreso: noviembre-2004
Mensajes: 249
Antigüedad: 19 años, 5 meses
Puntos: 1
Respuesta: realizar consulta a dos tablas y mostrar resultado

pues el sistema es así... existe una opción de búsqueda publica para todos los que quieran consultar, ya sea por numero de placa o por cédula... esa consulta la hace en la tabla principal (datosmultas) y si allí se encuentra nuestra búsqueda aparece un mensaje y un documento a descargar... ya eso me funciona perfecto...

Ahora lo que el publico general agrega en su búsqueda se va almacenando en otra tabla (registro) y esto también me funciona perfecto, EXISTEN datos consultados que las personas buscan que no están en la tabla principal (datosmultas) por lo que no importa todo se va guardando en esta tabla de control (registro)

ahora yo hice un listado general de esta tabla de control (registro) la cual me aparece todo lo que han buscado la fecha en que fue buscada e incluso guarda la ip de donde se hizo la búsqueda... (ya esto también lo tengo y me funciona)

Ahora quiero que esta tabla (registro) se comunique con la tabla principal (datosmultas) y me arroje si tal dato (cédula o placa) existe en ella... (Existe o no Existe) este script es el que uso,

Código PHP:
Ver original
  1. <? include("seguridad.php");?>
  2. <?php require_once('conexion.php');
  3. $cn=  Conectarse();
  4. $listado=  mysql_query("SELECT *FROM registro",$cn);
  5. ?>
  6.  <script type="text/javascript" language="javascript" src="js/jslistadopaises.js"></script>
  7.  <table cellpadding="0" cellspacing="0" border="0" class="display" id="tabla_lista_paises">
  8.      <thead>
  9.                     <tr>
  10.                         <th width="4">NUMERO</th>
  11.                         <th width="20">CONSULTA</th>
  12.                         <th width="20">FECHA</th>
  13.                         <th width="20">HORA</th>
  14.                         <th width="20">IP</th>
  15.                         <th width="20">ESTADO</th>
  16.                         <!--Estado-->
  17.                     </tr>
  18.                 </thead>
  19.                 <tbody>
  20.                     <?php
  21.  
  22.      
  23.                    while($reg=  mysql_fetch_array($listado))
  24.                    {
  25.                                echo '<tr>';
  26.                                echo '<td >'.mb_convert_encoding($reg['id'], "UTF-8").'</td>';
  27.                                echo '<td >'.mb_convert_encoding($reg['consulta'], "UTF-8").'</td>';
  28.                                echo '<td>'.mb_convert_encoding($reg['fecha'], "UTF-8").'</td>';
  29.                                echo '<td>'.mb_convert_encoding($reg['hora'], "UTF-8").'</td>';
  30.                                echo '<td>'.mb_convert_encoding($reg['ip'], "UTF-8").'</td>';
  31.                                //--------------------------------------------------------------------------
  32.                             echo '<td>';
  33. //if($reg['consulta'] == "PPI97C" ) {
  34. if($reg['consulta'] == $reg['placa'] ) {
  35.                // echo "<a href=ver.php?id=$reg[id]><img src=./iconos/verificar.png width=71 height=16 /></a>";
  36.                   echo "Existe";
  37. //}elseif($reg['consulta'] == "72431372" ) {
  38.     }elseif($reg['consulta'] == $reg['cedula'] ) {
  39.                 echo "Existe";
  40.     } else {  
  41.                  echo "No Existe";                
  42. }
  43. '</td>';
  44.                                echo '</tr>';
  45.                      
  46.                         }
  47.                     ?>
  48.                 <tbody>
  49.             </table>


aqui envio pantallazo de la consulta general. esos que estan señalados en rojo, están en la base de datos principal, y deberían aparecer EXISTE en estado...





el cual sirve hasta que...intento ponerle esto en esa linea 4: (que consulte las dos tablas) para hacer las comparaciones respectivas

Código PHP:
Ver original
  1. $listado=  mysql_query("SELECT registro.id, registro.fecha, registro.consulta, datosmultas.id, datosmultas.cedula, datosmultasplaca FROM registro,datosmultas",$cn);

esto es solo lo que aun no resuelvo y no funciona.... gracias por sus ayudas espero me puedan ayudar

Última edición por flashtrix; 20/07/2015 a las 09:58
  #8 (permalink)  
Antiguo 23/07/2015, 21:20
 
Fecha de Ingreso: marzo-2015
Mensajes: 183
Antigüedad: 9 años, 1 mes
Puntos: 8
Respuesta: realizar consulta a dos tablas y mostrar resultado

Amigo,
Qué relación (campo o campos) hay entre la tabla registros y datosmultas.
Menciona los campos de cada tabla que intervienen en tu consulta.

Etiquetas: fecha, mysql, registro, resultado, select, tabla, tablas
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 03:22.