Page 1 sur 1

Alimenter une table avec un csv

Posté : 13 sept. 2005, 11:37
par eric269
Hello, je cherche un petit script pour charger un fichier CSV vers une table Mysql.
J'ai bien essayé XLSMagique (super), le prob, c'est que l'on ne peut pas donner d'attribut (char, varchar, etc.)

A+

Posté : 13 sept. 2005, 11:44
par eric269
chui nul, j'ai trouvé (merci à l'auteur)
<?php

// ------------------------------------------------------------------------- //
// Insérer le contenu d'un fichier CSV dans une table MySQL.                 //
// ------------------------------------------------------------------------- //
// Auteur: Perrich                                                           //
// Email:  [email protected]                                          //
// Web:    http://www.frshop.net/                                            //
// ------------------------------------------------------------------------- //


// $fileName  : le nom du fichier
// $tableName : le nom de la table
// $con       : id de connexion à MySQL (recupéré avec $con = mysql_connect(...)

function insertIntoTable( $fileName, $tableName, $con )
{
    $file = fopen( $fileName, 'r' );
    $k = 0;
  
    while ( ! feof( $file ) )
    {
        $k++;
        $line = fgets( $file, 1024 );

        if ( strlen( $line ) > 2 )
        {
            $line = addslashes( $line );
            $line = str_replace ( ";", "', '", $line );
            $requete = 'INSERT INTO '.$tableName.' VALUES ( \''.$line.'\' ) ';
            if ( ! mysql_query ( $requete, $con ) )
                echo 'Erreur Ligne '.$k.' : '.mysql_error().'<br>'.$requete.'<br>';
        } 
        else
            echo 'Ligne '.$k.' ignorée.<br>';
    }

    echo '<p>Insertion du fichier '.$fileName.' terminé.</p><hr>';

    fclose( $file );
}

?>
Sorry