Alimenter une table avec un csv

Eléphanteau du PHP | 30 Messages

13 sept. 2005, 11:37

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+

Eléphanteau du PHP | 30 Messages

13 sept. 2005, 11:44

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