<?php
$servidor_ftp="coactemalan.net";
$ftp_nombre_usuario="coacte";
$ftp_contrasenya="william10";
$os_server="linux";

function my_handler($sql_insert) {
                    global $crlf;
                    echo "$sql_insert;$crlf";
}

function export_table_content_insert($db, $table){
  global $servidor_ftp, $ftp_nombre_usuario, $ftp_contrasenya, $os_server;
  // funcion para exportar los datos de la tabla como un insert 
  // y transferir el archivo generado al sitio ftp
                    global $crlf;
                    $archivo=fopen("./data_export/".$table.".txt","w+");
                    fwrite($archivo,date("Y-m-d H:i:s").$crlf);

                    $result = mysql_db_query($db, "SELECT * FROM $table") or die();
                    $i = 0;
                    while($row = mysql_fetch_row($result))
                    {
                        $table_list = "(";

                        for($j=0; $j<mysql_num_fields($result);$j++)
                            $table_list .= mysql_field_name($result,$j).", ";

                        $table_list = substr($table_list,0,-2);
                        $table_list .= ")";

                        if(isset($GLOBALS["showcolumns"]))
                            $schema_insert = "INSERT INTO $table $table_list VALUES (";
                        else
                            $schema_insert = "INSERT INTO $table VALUES (";

                        for($j=0; $j<mysql_num_fields($result);$j++)
                        {
                            if(!isset($row[$j]))
                                $schema_insert .= " NULL,";
                            elseif($row[$j] != "")
                                $schema_insert .= " \"".addslashes($row[$j])."\",";
                            else
                                $schema_insert .= " \"\",";
                        }
                        $schema_insert = ereg_replace(",$", "", $schema_insert);
                        $schema_insert .= ");".$crlf;
                        
                        fwrite($archivo,$schema_insert);
                        //echo $schema_insert."<br>";
                        //$handler(trim($schema_insert));
                        $i++;
                    } 
                    
                    //return $schema_insert;
                    fclose($archivo);
                                      
                    if($os_server=='windows'){
                      //echo "pkzip ./data_export/".$table.".zip ./data_export/".$table.".txt";
                      $res=exec("pkzip ./data_export/".$table.".zip ./data_export/".$table.".txt");
                      //echo "resultado $res<br>";
                    }else{
                      
                      $res=exec("zip -jD ./data_export/".$table.".zip ./data_export/".$table.".txt");
                      //echo "zip ./data_export/".$table.".zip ./data_export/".$table.".txt";
                      //echo "resultado $res<br>";
                    }
                    
                    chmod("./data_export/$table.zip",0700);
                    unlink("./data_export/".$table.".txt");
                                      
                    echo "$table -> GENERADO [OK] -> ";
                    
                    return (true); // descomentar en el servidor
                    
                    $archivo = "/www/htdocs/educativo/actualizacion/data_import/$table.zip";                  
                    
                    $da = fopen("./data_export/$table.zip", 'r');

                    // configurar la conexion basica
                    $id_con = ftp_connect($servidor_ftp) or die("No se conectó al servidor");

                    // iniciar sesion con nombre de usuario y contraseña
                    $resultado_login = ftp_login($id_con, $ftp_nombre_usuario, $ftp_contrasenya) or die("No se inicio sesion en el servidor");

                    // trata de cargar $archivo
                    if (ftp_fput($id_con, $archivo, $da, FTP_ASCII)) {
                         echo "CARGADO [OK] <BR>\n";
                         unlink("./data_export/".$table.".zip");
                    } else {
                         echo "CARGADO [FALLO] <BR>\n";
                    }

                    // cerrar la conexion y el gestor de archivo
                    ftp_close($id_con);
                    fclose($da);
                    
                    // fin de transferir el archivo a ftp
                    return (true);
}

function import_table_content($archivo){
  global $servidor_ftp, $ftp_nombre_usuario, $ftp_contrasenya, $os_server;

  $archivo_remoto="/www/htdocs/educativo/actualizacion/data_export/$archivo.zip";
  $archivo_local = ("./data_import/$archivo.zip");

  // configurar la conexion basica
  $id_con = ftp_connect($servidor_ftp) or die("No se conectó al servidor");

  // iniciar sesion con nombre de usuario y contraseña
  $resultado_login = ftp_login($id_con, $ftp_nombre_usuario, $ftp_contrasenya) or die("No se inicio sesion en el servidor");

  // trata de descargar $archivo
  if (ftp_get($id_con, $archivo_local, $archivo_remoto, FTP_BINARY, 0)) {
                  
    if($os_server=="windows"){
      //$res=exec("pkunzip ./data_import/".$archivo.".zip"); NO FUNCIONA
      $respkunzip=exec("php .\data_import\unzip.php archivo=$archivo");
    }else{
      $res=exec("unzip -d ./data_import/ -o ./data_import/".$archivo.".zip");
      //unlink("./data_import/".$table.".zip");
    }                       
  }
  ftp_close($id_con);
  
  
  $lineas=file("./data_import/$archivo.txt");
  $cant_lineas = count($lineas);
  
  if($cant_lineas <= 1){
    return false;
  }
  
  
  if($archivo !="alumnos" && $archivo != "usuarios"){
    $del=mysql_query("delete from $archivo");
    echo "mysql_query(delete from $archivo)";
  }
  
  for($i=1; $i<$cant_lineas; $i++){
    echo $lineas[$i]."<br>\n";
    $res=mysql_query($lineas[$i]); //ejecutar la instruccion
  }
  //unlink("./data_import/".$table.".txt");
}

function export_table_content_update($table){
  global $crlf, $servidor_ftp, $ftp_nombre_usuario, $ftp_contrasenya, $os_server;
  $archivo=fopen("./data_export/".$table.".txt","w+");
  fwrite($archivo,date("Y-m-d H:i:s").$crlf);

  $q=mysql_query("select * from $table");
  $campos=Array();

  for($i=0;$i<mysql_num_fields($q);$i++){
    $campos[$i]=mysql_field_name($q,$i);
  }

  while($ialumno=mysql_fetch_array($q)){
    $insql="insert into $table set $campos[0]=\"{$ialumno[0]}\";".$crlf;
    
    fwrite($archivo,$insql);
      
    $sql="update $table set ";
    
    for($i=1;$i<count($campos);$i++){
    
      if($campos[$i]=="clave" || $campos[$i]=="clave_web"){continue;}
    
      $sql.=$campos[$i]."=";
      if(!isset($ialumno[$i])){
        $sql.="NULL, ";
      }else{
        $ialumno[$i]=str_replace(chr(13),"",$ialumno[$i]);
        $ialumno[$i]=str_replace("\n","",$ialumno[$i]);
        $sql.="'".$ialumno[$i]."', ";
      }
    }
    $sql=substr($sql,0,strlen($sql)-2); 
    $sql.=" where {$campos[0]} = '$ialumno[0]';";
    $sql.=$crlf;
    //echo $sql;  
    fwrite($archivo,$sql);
  }

  fclose($archivo);
  
  chmod("./data_export/$table.txt",0744);
  
  if($os_server=='windows'){
    $res=exec("pkzip ./data_export/".$table.".zip ./data_export/".$table.".txt");
  }else{
    $res=exec("zip -jD ./data_export/".$table.".zip ./data_export/".$table.".txt");
  }
  unlink("./data_export/".$table.".txt");
  
  echo "$table -> GENERADO [OK] -> ";
                    
                    
                    // transferir el archivo a ftp
                    // abrir algun archivo para lectura
                    $archivo = "/www/htdocs/educativo/actualizacion/data_import/$table.zip";
                    
                    $da = fopen("./data_export/$table.zip", 'r');

                    // configurar la conexion basica
                    $id_con = ftp_connect($servidor_ftp) or die("No se conectó al servidor");

                    // iniciar sesion con nombre de usuario y contraseña
                    $resultado_login = ftp_login($id_con, $ftp_nombre_usuario, $ftp_contrasenya) or die("No se inicio sesion");

                    // trata de cargar $archivo
                    if (ftp_fput($id_con, $archivo, $da, FTP_ASCII)) {
                         echo "CARGADO [OK] <BR>\n";
                         //unlink("./data_export/$table.zip");
                    } else {
                         echo "CARGADO [FALLO] <BR>\n";
                    }

                    // cerrar la conexion y el gestor de archivo
                    ftp_close($id_con);
                    fclose($da);
                    // fin de transferir el archivo a ftp
                    return (true);
}
?>
