Geschmacksfrage

Wer schaffts die funktion noch etwas zu „optimieren“ ?
Ist natürlich nur ein fun thread, sind mir aber noch ein wenig viele zeilen und einige tolle ideen könnte man auch noch drin verwirklichen.

[php]<?php
// CSV Datei.
$csv = ‚Name;nachame;feld
anke;marie;lol‘;

    function csv2sql(&$csv,$sql,$tabelle)
    {
        foreach(explode("\n",$csv) as $line)
            echo 'INSERT INTO '.$tabelle.' ('.join(',',$sql).') VALUES ("'.join('","',array_map('addslashes',explode(';',$line))).'");<br />';
    }


csv2sql($csv,array('vorname','nachname','email'),'tabelle');

?>[/php]

Zu viele Zeilen?? :smiley: Du könntest eher mal zur Übersichtlichkeit ein paar Zeilenumbrüche einfügen!!

wenn du später den CSV Teil wirklich als Datei abspeicherst, kannst du file() beim einlesen benutzen. Das spart schonmal das explode im foreach (auch wenn um das foreach net drumkommst)

Ansonsten (Vorschlag)
[PHP]

<?php function csv2sql(&$csv,$sql,$tabelle) { foreach(explode("\n",$csv) as $line) vprintf("INSERT INTO %3\$s ('%2\$s') VALUES ('%1\$s');
\n", array_merge( (array) join("','",array_map('mysql_real_escape_string',explode(';',$line)))), $sql, (array) $tabelle ) ); } csv2sql($csv,array('vorname','nachname','email'),'tabelle'); ?>

[/PHP]

Du kannst es ja wieder in eine Zeile Quetschen (habs zum besseren lesen verteilt).
Eigentlich hat sich nichts verändert, ich finde es nur so vom Aussehen besser, weil man den Query string eher erkennt, finde ich.