Foros del Web » Programando para Internet » PHP »

comparar datos de tablas

Estas en el tema de comparar datos de tablas en el foro de PHP en Foros del Web. hola compañeros. Tengo 2 tablas: Ordenes y Viaticos. idorden:Clave primaria en ORDENES. idorden:Clave secundaria en VIATICOS. Cada orden debe tener registros de viaticos y el ...
  #1 (permalink)  
Antiguo 15/08/2008, 15:40
Avatar de rockasvivas  
Fecha de Ingreso: julio-2008
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 0
comparar datos de tablas

hola compañeros. Tengo 2 tablas: Ordenes y Viaticos.
idorden:Clave primaria en ORDENES.
idorden:Clave secundaria en VIATICOS.

Cada orden debe tener registros de viaticos y el administrador del sistema debe saber, desde su Panel, si NO se han capturado viaticos de cierta orden. Para que la misma aplicación se lo notifique habrá que consultar en la tabla viaticos si falta una "idorden" que NO esté en la tabla ORDENES. A mi se me ocurrió poner las "idorden" de cada tabla en un ARRAY:

Código PHP:
       $sql "select idorden from ordenes";
        
$res mysql_query($sql);        
        while (
$row mysql_fetch_array($res))  {
         
$idordenes ",".$row[idorden];                  
         echo 
$idordenes;
        }
        
        echo 
'<br>';
        
        
$sqlcat "select idorden from catering";
        
$rescat mysql_query($sqlcat);
        while (
$rowcat mysql_fetch_array($rescat))  {
         
$idordenescat ",".$rowcat[idorden];
         echo 
$idordenescat;
        } 
el ECHO me imprime para la tabla ORDENES: ,1,2,3,4,5 (ordenes existentes)
y para la tabla VIATICOS: ,2 (por ser el único viatico capturado para la orden 2)

En mi ejemplo, faltan por capturar viaticos de las ordenes 1,3,4 y 5

Cómo podría comparar esos arrays y que me saque y me diga cuáles son las ordenes pendientes de viaticar??

No pretendo que me resuelvan la vida, pero ayudenme
  #2 (permalink)  
Antiguo 15/08/2008, 16:16
Avatar de rockasvivas  
Fecha de Ingreso: julio-2008
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: comparar datos de tablas

No se molesten compañeros con una consulta SQL estaba de lo mas facil, y yo quebrandomela, es que soy principiante. Disculpen y gracias:

Código PHP:

             $sql 
"select ordenes.idorden from ordenes,catering where ordenes.idorden<>catering.idorden";
             
$res mysql_query($sql);
             

            while (
$row mysql_fetch_array($res)){


             echo 
$row[idorden];
             } 
  #3 (permalink)  
Antiguo 15/08/2008, 16:18
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 datos de tablas

Vi tarde tu segundo mensaje... pero aquí dejo mi sugerencia de todas formas.

Código PHP:
$sql "select idorden from ordenes";
$res mysql_query($sql);        
while (
$row mysql_fetch_array($res))  {
        
$idordenes ",".$row[idorden];
        
$sqlcat "select idorden from catering";
        
$rescat mysql_query($sqlcat);
        if(
mysql_num_rows($rescat) > 0) {
               
// Orden con víaticos
               
$basura mysql_result($rescat);
               continue;
        }
        echo 
"Orden sin viáticos: {$row[idorden]}<br />";

  #4 (permalink)  
Antiguo 15/08/2008, 16:22
Avatar de cdavid_00  
Fecha de Ingreso: septiembre-2004
Ubicación: La Gran Tenoch
Mensajes: 124
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: comparar datos de tablas

Hola

Para ser honestos no revisé tu código, sin embargo, te propongo otra alternativa de solución a tu problema, mediante una cosulta a la BD, asumiré que estás trabajando con mysql:


Código PHP:
$sql "SELECT idorden FROM ordenes WHERE idorden NOT IN (SELECT idorden from viaticos)"
En teoria esa consulta te trae todos los registros de la tabla ordenes que no tienen una correspondencia en la tabla de viaticos, no probé la consulta pero si no se me fue algo, debe funcionar =)

Saludos
__________________
"Cuanto más grande es el caos, más cerca está la solución"
"Toda ciencia tiene de ciencia, lo que tiene de matemática"
  #5 (permalink)  
Antiguo 15/08/2008, 16:55
Avatar de rockasvivas  
Fecha de Ingreso: julio-2008
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: comparar datos de tablas

gracias compañeros, uds son a toda MAIZ... DIOS los bendiga! ya estuvo, porque con mi segundo código se me presentó problemas de nuevo.
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 19:18.