Werte aus TXT in Datenbank übernehmen

U

ulumulu

Guest
Hallöchen liebe Ayomer,

ich hab mal eine Frage an euch.

Ich habe eine TXT-Datei mit ca. 10.000 Wörtern und möchte diese nun per PHP-Script in eine Datenbank schreiben.

Hat jemand von euch einen Codeschnipsel dazu?
 
wie sind denn die wörter getrennt?
und wie sieht deine datenbank aus (aufbau der tabelle), in die du diese wörter schreiben willst?
 
Hi,

die Wörter sind untereinander geschrieben

QUOTE
wort1
wort2
wort3
wort4
wort5
usw.



Die Datenbanktabelle hat 2 Felder

id (auto_increment) & wort
 
5 euro per paypal dann skript ichs dir
smile.gif
 
QUOTE (Sancheck @ Do 26.06.2008, 18:28) 5 euro per paypal dann skript ichs dir
smile.gif


Wenn ichs binnen der nächsten 10 Minuten hab, gerne.
 
die ansätze und das total GRATIS
wink.gif


CODE <?php
$file = 'textfile.txt';
$fileContents = file_get_contents($file);
$words = explode('\r\n',$fileContents); /*gibt viele arten von zeilenumbrüchen: dieser ist der verbreiteste*/

foreach($words as $word)
{
$sql = 'INSERT INTO `tabelle`(`id`,`value`) VALUES(NULL,\''.mysql_escape_string(htmlspecialchars($word)).'\');';
mysql_query($sql);
}
?>


schnell hier reingescriptet für fehler übernehme ich keine haftung..
wink.gif
 
Habs auch,ebenfalls gratis und ohne dass ichs kontrolliert habe,....
QUOTE
<?php
$mysqlhost="localhost"; // MySQL-Host angeben
$mysqluser="root"; // MySQL-User angeben
$mysqlpwd=""; // Passwort angeben
$mysqldb="misc"; // Gewuenschte Datenbank angeben

$filename = "xxx.txt";
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");


@$fp = fopen($filename,"r"); // File zum Lesen öffnen
if (!$fp) {
    print "File $filename doesn't exist<br>\n";
} else {
    $fileok = "ok";
    while (!feof($fp)) {
   
mysql_query("INSERT INTO links VALUES('','".fgets($fp, 4096)."')") or die(mysql_error());
    }
}
?>
 
Sofern ich dich richtig verstanden hab:
CODE
$datei = fopen("test.txt", "r");

while ($zeile = fgets($datei,1024));{

$query = "INSERT INTO table(wort)VALUE('".$zeile."')";
mysql_query($query)or die(mysql_error());


fclose($datei);

 
QUOTE (Sancheck @ Do 26.06.2008, 18:33) Habs auch,ebenfalls gratis und ohne dass ichs kontrolliert habe,....

QUOTE
<?php
$mysqlhost="localhost"; // MySQL-Host angeben
$mysqluser="root"; // MySQL-User angeben
$mysqlpwd=""; // Passwort angeben
$mysqldb="misc"; // Gewuenschte Datenbank angeben

$filename = "xxx.txt";
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");


@$fp = fopen($filename,"r"); // File zum Lesen öffnen
if (!$fp) {
    print "File $filename doesn't exist<br>\n";
} else {
    $fileok = "ok";
    while (!feof($fp)) {
   
mysql_query("INSERT INTO links VALUES('','".fgets($fp, 4096)."')") or die(mysql_error());
    }
}
?>


ahja
das liest jez aber nicht wort für wort ein wa?
wink.gif
 
QUOTE (Sancheck @ Do 26.06.2008, 18:41) fgets liest zeilenweise

das ist nicht das worauf ich hinaus wollte du verwendest

QUOTE fgets($fp, 4096)


was prinzipiell falsch ist da ein limit gegeben ist, richtig wäre fgets($fp)
wink.gif
 
Hallo nochmal,

ich danke euch allen für eure Schnipsel. Es hat zwar keines auf Anhieb ohne Fehlermeldung funktioniert, aber das von Sancheck habe ich nun so hinbekommen, dass es meinen Ansprüchen gerecht wird.

Jetzt habe ich noch ein kleines Problem, bei dem ich hoffe, dass ihr mir auch hier weiterhelfen könnt.

Es werden nach jedem Wort noch genau 1 Leerzeichen angefügt, die ich einfach nicht wegbekomme.

Wie gesagt, es handelt sich um den Schnipsel von Sancheck (hier nur die Testausgabe!)

QUOTE @$fp = fopen($filename,"r"); // File zum Lesen öffnen
if (!$fp) {
print "File $filename doesn't exist<br>\n";
} else {
$fileok = "ok";
while (!feof($fp)) {

$plaintext = fgets($fp, 30000);
$test = str_replace(' ', '', $plaintext);

echo '+++'.$test.'+++';
}
}


Ausgabe ist Folgende: +++wort +++

Was mache ich falsch?
 
Probier mal stattdessen

$test = str_replace( array("\n", "\r", ' '), '', $plaintext );

wahrscheinlich liest der die Zeilenumbrüche einfach mit ein...
 
QUOTE $plaintext = trim(fgets($fp));



War/ist die Lösung ;-)

Trotzdem danke.


Liebe Grüße ans tolle Forum

ulumulu
 
Zurück
Oben