PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   csv import Script / hilfe gesucht (http://www.selfphp.de/forum/showthread.php?t=19143)

Chris_M 14.04.2008 18:33:37

csv import Script / hilfe gesucht
 
moin

ich hab mir ein einfachen php script gesucht und auch gefunden der einigermasen läuft
bis auf die tatsache das er fehler rausschmeisst die ich nicht ganz verstehe

verbindung zur datenbank hat er

hier mein code
PHP-Code:

<?php 
error_reporting
(E_ALL);

    
// Systemeinstellungen 
    
$id "***"
    
$pw "***"
    
$host "localhost"
    
$database "***"
    
$table "testm"
    
$datei "test.csv"
    
// Einstellungen Ende 
    
    

echo "<html><body>"

if(!
$table || !$datei) die("Die Quelle oder das Ziel sind unbekannt"); 

// Verbindung mit dem Server und einer Datenbank 
$conn_id mysql_pconnect($host,$id,$pw) or die("Verbindung konnte nicht hergestellt werden"); 
mysql_select_db($database) or die("Die Datenbank konnte nicht gefunden werden"); 

// ermitteln Namen und Menge der Spalten 
$result mysql_list_fields($database,$table); 

    for(
$i=0;$i<mysql_num_fields($result);$i++) 
    { 
        
$spalten mysql_field_name($result,$i).";"
        } 
        
$anzahl mysql_num_fields($result); 
$spalten trim(substr($spalten,0,-1)); 

// leert die Tabelle 
mysql_query("DELETE FROM $table") or die(mysql_error()); 

// liest die Datei ab und überträgt sie zeilenweise in die Tabelle 
$fp fopen($datei,"r"); unset($i); 

while(!
feof($fp)) { 
$zeile fgets($fp,1024); 

    if(!
$start
    { 
        if(
count(explode(",",$zeile))!=$anzahl
            die (
"Menge der Daten entspricht nicht der Anzahl der Spaltenanzahl"); 
            } 
            
        echo 
$i++."<br>"
            
$zeile "'".str_replace(",","','",strstr($zeile,","))."'"
            
mysql_query("INSERT INTO $table ($spalten) VALUES ($zeile)"); 
            
$start=true
            } 
fclose($fp); 

echo 
"Import erfolgreich abgeschlossen.<p></p>"
echo 
"</body></html>"

?>

hier der fehler:

Notice: Undefined variable: start in /usr/export/www/vhosts/funnetwork/hosting/*******/test.php on line 43
Menge der Daten entspricht nicht der Anzahl der Spaltenanzahl

wenn ich nur die var vordefiniere läuft zwar das script durch aber er speichert nix

bitte helft mir ich komm da nicht weiter
mfg

P.s. bin php anfänger

Domi 21.04.2008 18:28:52

AW: csv import Script / hilfe gesucht
 
Hast du schon eine Lösung?

Also um eine Tabelle zu leeren empfehle ich dir TRUNCATE.

Du solltest im allgemeinen auf die(); verzichten wenn möglich.. ist ordentlicher ;)

Die Variable sollte natürlich vorher definiert werden.

Um alle Fehler anzuzeigen würde ich dir

PHP-Code:

error_reporting(E_STRICT E_ALL); 

empfehlen. Ist aber glaub Geschmackssache ;)

Desweiteren solltest du darauf achte, dass du richtig einrückst.

PHP-Code:

unset($i); 

?? was hast du damit vor? $i gilt nur innerhalb der for-Schleife und wird automatisch wieder verworfen.

Du solltest erstmal versuchen die einzelnen Teilbereiche auf die Reihe zu bringen: Mit Dateien arbeiten (ein und auslesen) und mit der Datenbank arbeiten (ein und auslesen). So siehst du wo deine Probleme liegen und warum das eine oder andere nicht Funktioniert.

Außerdem hilft es dir immer, wenn du versucht zu debuggen, sprich die einzelnen Resultate einfach mal per echo anzeigen und schauen was so die Zwischenergebnisse sind. So findet man oft den Fehler. Vor allem kannst du uns dann genauer fragen!!

Falls du php besser (kennen-)lernen möchtest könntest du dir mal http://tut.php-q.net anschauen.

Gruß
Domi

//P.S.: Wenn du weitere Fragen hast, dann her damit :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:41:02 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.