Visualizzazione dei risultati da 1 a 4 su 4

Discussione: cvs in sql

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    262

    cvs in sql

    Sto cercando di convertire un file cvs ip/country in uno script sql ma non riesco a tovare un tool gratuito che mi permetta di fare questo. Ho trovato una script ma non funziona correttamente. L'operazione di upload direttamente come file cvs si blocca.





  2. #2
    Il fornitore del fine non mette a disposizione uno script adatto?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    262
    purtroppo no è solo cvs, mi serve creare la tabella solo per l'italia.
    Provo da xls a sql.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    262
    Trovato questo:

    <HTML>

    <HEAD>
    <TITLE>CSV to SQL convertor</TITLE>
    </HEAD>

    <BODY>

    <H2>CSV to SQL convertor</H2>



    <FORM NAME="csv2sql" METHOD=POST ACTION="<? echo $PHP_SELF; ?>">
    <INPUT TYPE="HIDDEN" NAME="ref" VALUE="csv2sql">
    Insertion table:


    <INPUT CLASS="DEFAULT" TYPE="TEXT" NAME="table_name" VALUE="" SIZE=50>



    CSV data:


    <TEXTAREA CLASS="DEFAULT" NAME="csv_data" ROWS=30 COLS=100></TEXTAREA>



    <INPUT CLASS="DEFAULT" TYPE=SUBMIT VALUE=" Convert to SQL query ">
    </FORM>



    <?php

    // Parse incoming information if above form was posted
    if($_POST[ref] == "csv2sql") {

    echo "<h2>SQL Query Output:</h2>";

    // Get information from form & prepare it for parsing
    $table_name = $_POST[table_name];
    $csv_data = $_POST[csv_data];
    $csv_array = explode("\n",$csv_data);
    $column_names = explode(";",$csv_array[0]);

    // Generate base query
    $base_query = "INSERT INTO $table_name (";
    $first = true;
    foreach($column_names as $column_name)
    {
    if(!$first)
    $base_query .= ", ";
    $column_name = trim($column_name);
    $base_query .= "`$column_name`";
    $first = false;
    }
    $base_query .= ") ";

    // Loop through all CSV data rows and generate separate
    // INSERT queries based on base_query + the row information
    $last_data_row = count($csv_array) - 1;
    for($counter = 1; $counter < $last_data_row; $counter++)
    {
    $value_query = "VALUES (";
    $first = true;
    $data_row = explode(";",$csv_array[$counter]);
    $value_counter = 0;
    foreach($data_row as $data_value)
    {
    if(!$first)
    $value_query .= ", ";
    $data_value = trim($data_value);
    $value_query .= "'$data_value'";
    $first = false;
    }
    $value_query .= ")";

    // Combine generated queries to generate final query
    $query = $base_query .$value_query .";";
    echo "$query
    ";
    }
    }

    ?>




    Il file cvs solo per l'italia è il seguente:

    start_ip,end_ip,start,end,cc,cn

    65.99.208.32,65.99.208.47,1097060384,1097060399,IT ,Italy
    65.99.208.112,65.99.208.119,1097060464,1097060471, IT,Italy
    65.99.220.240,65.99.220.255,1097063664,1097063679, IT,Italy
    65.110.36.60,65.110.36.69,1097737276,1097737285,IT ,Italy
    65.110.37.160,65.110.37.169,1097737632,1097737641, IT,Italy
    65.110.40.170,65.110.40.179,1097738410,1097738419, IT,Italy
    65.110.51.170,65.110.51.179,1097741226,1097741235, IT,Italy
    65.110.60.10,65.110.60.19,1097743370,1097743379,IT ,Italy


    ma la query che viene fuori è un pò strampalata...

    INSERT INTO tab (`start_ip,end_ip,start,end,cc,cn`) VALUES ('');
    INSERT INTO tab (`start_ip,end_ip,start,end,cc,cn`) VALUES ('65.99.208.32,65.99.208.47,1097060384,1097060399, IT,Italy');
    INSERT INTO tab (`start_ip,end_ip,start,end,cc,cn`) VALUES ('65.99.208.112,65.99.208.119,1097060464,109706047 1,IT,Italy');
    INSERT INTO tab (`start_ip,end_ip,start,end,cc,cn`) VALUES ('65.99.220.240,65.99.220.255,1097063664,109706367 9,IT,Italy');
    INSERT INTO tab (`start_ip,end_ip,start,end,cc,cn`) VALUES ('65.110.36.60,65.110.36.69,1097737276,1097737285, IT,Italy');
    INSERT INTO tab (`start_ip,end_ip,start,end,cc,cn`) VALUES ('65.110.37.160,65.110.37.169,1097737632,109773764 1,IT,Italy');
    INSERT INTO tab (`start_ip,end_ip,start,end,cc,cn`) VALUES ('65.110.40.170,65.110.40.179,1097738410,109773841 9,IT,Italy');
    INSERT INTO tab (`start_ip,end_ip,start,end,cc,cn`) VALUES ('65.110.51.170,65.110.51.179,1097741226,109774123 5,IT,Italy');


    sono troppi records da farli a mano.....




Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.