Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/08/2013, 08:01
Josamulai
 
Fecha de Ingreso: diciembre-2009
Ubicación: Sevilla
Mensajes: 49
Antigüedad: 14 años, 4 meses
Puntos: 0
Problemas con require/include dentro de while

Me explico:

Tengo un código php en el que estoy intentando manejar un while, os expico:

Código PHP:
Ver original
  1. $array2;//suponemos que este array tiene contenido
  2. $array1;// suponemos que este array tiene contenido.
  3. $diffe_array = array_diff($array2, $array1);
  4.  
  5. //CREATE THE CONDICTION
  6. $diffe=count($diffe_array);
  7. do {
  8.      $lastone=end($diffe_array);
  9.      require('./Step0.php');
  10.      $extract=array_pop($diffe_array);
  11.      $diffe=count($diffe_array);
  12.      print_r($diffe_array);
  13. } while ($diffe > 0);
  14.  
  15. echo 'JUST YOU HAVE 0 ITEMS IN YOUR ARRAY!!!!';

Os aclaro paso por paso:

Paso1.- Tengo por ejemplo estos dos arrays:

array2 ( [0] => 00004.csv [1] => 00007.csv [2] => 00005.csv [3] => 00003.csv [4] => 00002.csv [5] => 00001.csv [6] => 00006.csv [7] => 00000.csv )


array1 ( [0] => 00004.csv [1] => 00003.csv [2] => 00002.csv [3] => 00001.csv [4] => 00000.csv )

Paso3.- Calculo un array con las diferencias:

diffe_array ( [1] => 00007.csv [2] => 00005.csv [6] => 00006.csv )

Step4.- Necesito crear un bucle para ir extrayendo cada item de mi diffe_array y usarlo en mi otro script Step0.php (este script se encarga de abir el archivo conel mismo nombre del item del array extraido y cargar su contenido en una base de datos). Yo necesito hacer esto hasta que diffe_array esté vacío. y salir del bucle.

El otro archivo Step0.php es:
Código PHP:
Ver original
  1. <?php
  2.  
  3. function Conection()
  4. {
  5.        if (!($link=pg_connect("host=xxxxx port=xxxx dbname=xxxxx user=xxxxx password=xxxxx")))  {
  6.            echo "Error connecting to the database.";
  7.            exit();
  8.        }
  9.        return $link;
  10. }
  11. require_once('./process.php');//This is the before file
  12. $rute="/rute/to/my/file/";
  13. $end= $rute.$lastone;
  14. $row = 0;
  15. $handle = fopen($end, "r");
  16. while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
  17.     $num = count($data);
  18.     $row++;
  19.     echo '<b><br/><br/>';
  20.     $request = "insert into table(column1,column2,column3,column4) values(";
  21.     for ($c=0; $c < $num; $c++) {
  22.         if ($c==($num-1))
  23.               $request = $request."'".$data[$c] . "'";
  24.         else
  25.               $request = $request."'".$data[$c] . "',";
  26.     }
  27.  
  28.     $request = $request.");";
  29.     echo $request."<br>";  
  30.  
  31.      $union=Conection();
  32.      $result=pg_query($union, $request);
  33.      pg_close($union);
  34. }
  35.  
  36. fclose($handle);
  37.  
  38. ?>

Lo que ocurre hasta ahora es que cada vez que ejecuto solo me pasa una vez por el Step.php por lo que solo me introduce un dato del diffe_array en lugar de recorrerlo y pasarlos todos.

Alguna idea a mi problema??

Gracias