Foros del Web » Programando para Internet » PHP »

Comparar registros de dos tablas

Estas en el tema de Comparar registros de dos tablas en el foro de PHP en Foros del Web. Quiero comparar los registros de dos tablas para generar una tabla dinámica. La principal (calldata) almacena un registro de llamadas y la secundaria (nombres) una ...
  #1 (permalink)  
Antiguo 01/06/2010, 17:16
 
Fecha de Ingreso: diciembre-2008
Mensajes: 18
Antigüedad: 15 años, 4 meses
Puntos: 0
Comparar registros de dos tablas

Quiero comparar los registros de dos tablas para generar una tabla dinámica. La principal (calldata) almacena un registro de llamadas y la secundaria (nombres) una agenda. Lo que me interesa es que si el número de teléfono que muestra la tabla principal (calldata.CALLER), está en la agenda (nombres.telefono), esta añada el nombre (nombres.nombre) a la tabla dinámica al hacer la consulta. Lo estoy intentando con este código pero siempre me devuelve "--".
Código PHP:
  <?php do { ?>
    <tr>
      <td><?php echo $row_Recordset1['CALLTYPE']; ?></td>
      <td><?php echo $row_Recordset1['CALLID']; ?></td>
      <td><?php echo $row_Recordset1['CALLDATE']; ?></td>
      <td><?php echo $row_Recordset1['NAEXT']; ?></td>
      <td><?php echo $row_Recordset1['NNUMBER']; ?></td>
      <td><?php echo $row_Recordset1['CALLER']; ?></td>
      <td><?php echo $row_Recordset1['CALLDUR']; ?></td>
      <td><?php echo $row_Recordset1['CALLRESP']; ?></td>
      <td><?php
      
      $busca1 
mysql_query("SELECT nombres.telefono FROM nombres");
      
$nombre mysql_query("SELECT nombres.nombre FROM nombres");

      if (
$row_Recordset1['CALLER'] == $busca1['telefono']) { 
                              
                            echo 
$nombre['nombre']  ;
                                                
                                } else {
                                                    
                                        echo 
"--" ;
        }
?></td>
      </tr>
    <?php } while ($row_Recordset1 mysql_fetch_assoc($Recordset1)); ?>
</table>
  #2 (permalink)  
Antiguo 01/06/2010, 17:45
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Comparar registros de dos tablas

Hay dos problemas:

1- En tu consulta $busca1 deberias seleccionar tanto nombre como telefono, pero filtrar de acuerdo a: SELECT nombre, telefono FROM nombres WHERE telefono = '{$row_Recordset1['CALLER']}'
2- Debes ejecutar y leer la consulta para poder manipular los datos:

Código PHP:
Ver original
  1. $res1 = mysql_query($busca1);
  2. // verifica si obtuviste algun resultado
  3. if(mysql_num_rows($res1) > 0) {
  4.     list($nombre, $telefono) = mysql_fetch_row($res1);
  5. } else
  6.     $nombre = $telefono = '--';
  7.  
  8. // Ahora si comparas:
  9. if ($row_Recordset1['CALLER'] == $telefono) {
  10. }
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 02/06/2010, 05:39
 
Fecha de Ingreso: diciembre-2008
Mensajes: 18
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Comparar registros de dos tablas

Gracias por contestar. Poniendo ese código me devuelve este error:

Warning: mysql_query() expects parameter 1 to be string, resource given in C:\wamp\www\Centralita Entrantes con nombre.php on line 89

????
  #4 (permalink)  
Antiguo 02/06/2010, 07:05
Avatar de oswalgogra  
Fecha de Ingreso: septiembre-2007
Ubicación: En algún lugar del territorio Colombiano
Mensajes: 140
Antigüedad: 16 años, 7 meses
Puntos: 5
Busqueda Respuesta: Comparar registros de dos tablas

Hola, qué tal?
Yo creo que lo primero que tienes que hacer es asegurarte de que estás ejecutando los procedimientos correctos para obtener los datos que necesitas comparar, por ejemplo, para obtener el resultado de una consulta en mysql puedes usar:
Código PHP:
$query "SELECT nombres.telefono FROM nombres WHERE campo_verificar=" $valorBuscar;
$resultadoBusca1 mysql_query($query); 
if(
$resultadoBusca1){
    while(
$arregloRegistro mysql_fetch_row($resultadoBusca1)){
            
/* ahora $arregloRegistro va obteniendo los datos de las filas que 
                retorne la consulta, y puedes acceder a los datos de la forma $arregloRegistro[0] ó $arregloRegistro["nombre_columna"], y lo puedes
                comparar con otro resultado de otra consulta, o con lo que quieras
            */
}

Entonces, creo que primero deberías verificar eso, que las consultas te estén devolviendo los datos que necesitas, para luego hacer las comparaciones requeridas en tu programa.

Ah! y el mensaje de warning que te aparece (Warning: mysql_query() expects parameter 1 to be string, resource...) se refiere a que la variable que le estás pasando a mysql_query($variable), no es un string (una consulta).

Espero haberte ayudado un poco con tu problema, éxitos con ello.

Hasta pronto!
__________________
Oswaldo: El que gobierna con el poder de Dios.
  #5 (permalink)  
Antiguo 02/06/2010, 09:59
 
Fecha de Ingreso: diciembre-2008
Mensajes: 18
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Comparar registros de dos tablas

Muchas gracias por contestar Oswaldo, pero no consigo hacer lo que necesito. En la tabla, llamemosle A, necesito que fila a fila compare el campo CALLER con la columna "telefono" de la tabla B completa. En caso de haber una coincidencia entre el dato CALLER de A y cualquiera de los datos almacenados en la columna teléfono de B, necesito que cruzando las dos tablas en la tabla dinámica que quiero generar, inserte el campo "nombre" de B asociado a ese dato "telefono" de B coincidente con CALLER de A. En caso de no haber coincidencias quiero que inserte por ejemplo "--" o "No hay registro". Pido disculpas porque como se puede ver no tengo ni idea de php. Lo poco que he generado ha sido con Dreamweaver. Tengo la tabla dinámica funcionando perfectamente pero ahora me interesaba añadir ese dato a mayores. Si podeis ayudarme mejor puedo pegar el código entero. Gracias.
  #6 (permalink)  
Antiguo 02/06/2010, 10:57
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Comparar registros de dos tablas

Sorry, cuando respondi algo me decia "$busca1 es solo una cadena y no ejecuta la consulta", no lo vi bien.

Código PHP:
Ver original
  1. $busca1 = mysql_query("SELECT nombre, telefono FROM nombres WHERE telefono = '{$row_Recordset1['CALLER']}'");
  2.  
  3. // verifica si obtuviste algun resultado
  4. if(mysql_num_rows($busca1) > 0) {
  5.     list($nombre, $telefono) = mysql_fetch_row($busca1);
  6. } else
  7.     $nombre = $telefono = '--';
  8.  
  9. // Ahora si comparas:
  10. if ($row_Recordset1['CALLER'] == $telefono) {
  11. }
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 03/06/2010, 16:21
 
Fecha de Ingreso: diciembre-2008
Mensajes: 18
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Comparar registros de dos tablas

Grande Triby!! Muchas gracias funcionando. Caballeros, un placer trabajar con ustedes jejeje.

Etiquetas: comparar, dos, registros, 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 14:41.