Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/03/2011, 21:35
juandedios
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años
Puntos: 8
Comparar 2 archivos .csv con PHP

Hola, quiero comparar 2 archivos .csv y al final listar las filas del segundo archivo que no se encuentran en el primero. Cuando quiero mostrar el contenido de un solo archivo .csv no tengo problemas, el problema viene cuando quiero compararlos, quizás está mal mi lógica o quizas hay algo que se me está escapando por favor les envío el código y ójala que me puedan ayudar.

Código PHP:
Ver original
  1. $arch = $_POST["arch"];
  2.  
  3. $file = "mydir/filebase.csv";
  4. $fp = fopen ( $file , "r" );
  5. $fila = 1;
  6.  
  7. while (($data = fgetcsv ($fp , 1000, ";")) !== FALSE) {
  8.     $num = count($data);
  9.     $i = 0;
  10.     if ($fila != 1) {
  11.         $i = 0;
  12.         foreach($data as $row) {
  13.  
  14.             if ($i == 0) $id = $row;
  15.             if ($i == 2) $nom = $row;
  16.            
  17.             //Archivo a comparar
  18.             $filec = "comparativos/" . $arch;
  19.             $fpc = fopen ( $filec , "r" );
  20.             $filac = 1;
  21.            
  22.             while (($datacom = fgetcsv ($fpc , 1000, ";")) !== FALSE) {
  23.                 $num = count($datacom);
  24.                 $c = 0;
  25.                 if ($filac != 1) {
  26.                     $c = 0;
  27.                     foreach($datacom as $rowc) {
  28.            
  29.                         if ($c == 0) $idc = $rowc;
  30.                         if ($c == 2) $nomc = $rowc;
  31.                        
  32.                         $c++ ;
  33.                        
  34.                     }
  35.                    
  36.                     if ( $id == $idc ) $mostrar .= $idc . " - " . $nomc . "<br />";
  37.                 }
  38.                 $filac++;
  39.             }
  40.             fclose ( $fpc );
  41.             //Fin archivo a comparar
  42.            
  43.             $i++ ;
  44.            
  45.         }
  46.     }
  47.     $fila++;
  48. }
  49. fclose ( $fp );
  50.  
  51. echo $mostrar;

No sale ningún error, simplemente el echo no muestra nada. Pero cuando quiero mostrar un solo archivo, cualquiera de los dos, si lo muestra.

En el caso del código estoy poniendo para mostrar las filas que coinciden con el primer archivo.

Espero que me puedan ayudar.
__________________
El aprendiz.