PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : datei auslesen und in mysql speichern


kacel
31.01.2005, 01:12:40
Hiho,

hätt da son kleines prob an dem isch éinfach net weiderkomme:

möchte aus ner .sql bzw .txt datei nen kleinen mysql dump auslesen wo im prinzip nur CREATES drin stehen mit folgendem code
PHP Code

$file = 'juv_tables.txt';
$open_file = fopen($file, "r");
$tab_inst = fread($open_file, filesize($file));
fclose($open_file);

for ($x= 0;$x>=31;$x++) {
$tab_inst = str_replace(chr($x),"", $tab_inst);
}

$tab_res = mysql_query($tab_inst);


ich dachte der fehler liegt an den steuerzeichen die php hinzufügt, deswegen die schleife, die (hoffentlich) alle entfernt ... aber es will einfach nicht gehen...

solange die .sql/.txt aus einer zeile besteht ist des so kein thema und funktioniert wunderbar!!

mfg philipp

|Coding
31.01.2005, 01:27:37
versuch es so:


$file = 'juv_tables.txt';
$open_file = file($file);
foreach($open_file as $sqldump){
for ($x= 0;$x>=31;$x++) {
$sqldump = str_replace(chr($x),"", $sqldump);
}
$tab_res = mysql_query($sqldump);
}


sollte das nicht klappen, wäre ein beispiel für den inhalt deiner datei juv_tables.txt sehr hilfreich.

kacel
31.01.2005, 01:43:53
korrekt!!!!! besten dank ... lag es an dem fclose !?; also warum lag es daran

|Coding
31.01.2005, 02:16:11
jain, also es lag daran das die datei mehrere zeilen hat, fread liest aber nur im eine zeile, also nicht gut (und dafür ne schleife schreiben ist doof). file ist eine funktion die lies die komplette datei ein und über gibt die daten einem array in dem jede dateizeile ein eigenes element im array darstellt. dann musst du nur noch das array durchlaufen und in deinem fall jedes array element im mysql_query ausführen. das wars oder ist dir noch was unklar? wenn ja frag ruhig.

xabbuh
31.01.2005, 08:34:39
Original geschrieben von |Coding

for ($x= 0;$x>=31;$x++) {
$sqldump = str_replace(chr($x),"", $sqldump);
}

Müsste es nicht heißen:

for ($x = 0;$x <= 31; $x++) {
$sqldump = str_replace(chr($x),"", $sqldump);
}

kacel
31.01.2005, 09:35:31
a guten morgen!

hmm hättsch mir auch mal die fread() genauer anschauen können, wie gesagt besten dank ;)

--> naaa, bei kleiner gleich ..kann.. die schleife auch unter 31 abgebrochen werden, was sie ja definitiv nich soll

xabbuh
31.01.2005, 09:41:59
Original geschrieben von kacel
--> naaa, bei kleiner gleich ..kann.. die schleife auch unter 31 abgebrochen werden, was sie ja definitiv nich soll
Nein, sie wird so lange ausgeführt, wie $x kleiner oder gleich 31 ist.

In der Variante oben weiter würde die Schleife gar nicht ausgeführt werden, da $x nie größer oder gleich 31 wird.

|Coding
31.01.2005, 09:57:49
hmm, gut habe ich übersehen :-)