Wörterbuch: Txt in DB konvertieren

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Wörterbuch: Txt in DB konvertieren

    Hey ho ^^
    Und wieder ne Frage an euch (was auch sonst ~.~)
    Ich hab hier n Script,
    welches eingegebene Wörter übersetzt.
    Auch eine Wildcard is mit drin.

    Ok, nichts tolles, aber hey, das is mein 4ter tag!

    Nur is das auf txt datei Basis und ich schaffs net das in eine DB zu bekommen.
    Bei den ganzen Wörtern is das einfach unmöglich geworden.
    Und hier mal der Code:

    Quellcode

    1. beliebiges zeichen: <b>%</b><br />
    2. <form method="get">
    3. <input type="text" name="suche"<? if (isset($_GET['suche'])) echo ' value="'.str_replace('"', '\"', $_GET['suche']).'"'; ?>>
    4. <select name="wo" size="1">
    5. <option value="de"<? if (strtolower($_GET['wo']) == 'de') echo " selected"; ?>>DE</option>
    6. <option value="en"<? if (strtolower($_GET['wo']) == 'en') echo " selected"; ?>>EN</option>
    7. </select>
    8. <input type="submit" value=" go ">
    9. </form>
    10. <?
    11. if(!isset($_GET['suche'])) exit;
    12. switch(strtolower($_GET['wo'])){
    13. case 'de':
    14. $wo = 'de';
    15. break;
    16. case 'en':
    17. $wo = 'en';
    18. break;
    19. default:
    20. $wo = 'de';
    21. }
    22. $suche = trim($_GET['suche']);
    23. if(strlen($suche) < 3) die("<b>fehler: </b>suchbegriff muss aus mindestens 3 zeichen bestehen.");
    24. $suche = str_replace('%', '.*', $suche);
    25. $db = file('datenbank.txt');
    26. echo "<table>\n";
    27. $treffer = 0;
    28. foreach($db as $line){
    29. list($de, $en) = explode('|', $line);
    30. if(preg_match("%^".$suche."%i", $$wo)){
    31. echo "<tr>\n <td>".$$wo."</td>\n <td>".(($wo == 'de') ? $en : $de)."</td>\n</tr>\n";
    32. $treffer++;
    33. }
    34. }
    35. echo "<tr>\n <td colspan=2>__________<br />".$treffer." Treffer</td>\n</tr>\n</table>";
    36. ?>
    Alles anzeigen


    test url:

    welpe.we.funpic.de/


    Bitte um hilfe
    :cry:
  • hi,

    sorry, ich muss dir leider eine fast identische antwort wie beim letzten mal geben. Generelle Tipps zum Wechseln von Textdatenbank auf MySQL (???) Datenbank sind, kann ich dir kaum geben.

    Wenn du eben MySQL könntest, dann würdest du sehen, dass da kein großer Unterschied ist. Statt mit einer foreach Schleife über die Zeilen zu iterieren nutzt du eben [phpdoc]mysql_fetch_object[/phpdoc] um über verschiedene Einträge zu iterieren.

    Statt auf php basis mittels preg_match zu selektieren, kannst du das schon in der Datenbank durch eine Einschränkung tun.

    Quellcode

    1. SELECT * FROM tbl WHERE col LIKE '%suchwort%';


    Aber zu den Basics brauchst du erstmal eine Tabelle, ....
    und natürlich müssen die Datenbank erstmal in die Tabelle rein, Das ist aber auch nur ein SQL Befehl (INSERT INTO tbl ....)

    Ansonsten:
    http://tut.php-q.net/mysql.html

    Zum Lernen sind die Tutorials da.. beim Fehler finden stehen wir wieder gerne zur Seite,
  • heyho, ich bins mal wieder ^^"

    Hab hier mal wieder ne Frage,
    nach hängen und würgen,
    hab ich folgendes für das wörterbuch gebastelt:

    Php -> MySql

    Quellcode

    1. <?
    2. $db = file("datenbank.txt");
    3. foreach($db as $line){
    4. if(!isset($line)) continue;
    5. list($de, $jp) = explode('|', $line);
    6. mysql_query("insert into `woerterbuch` (`de`, `jp`) values ('".$de."', '".$jp."')")
    7. or die(mysql_error());
    8. }
    9. ?>


    und entweder bin ich doof, oder mein script is müll,
    weil es nich geht Oo...
    Und alles in allem siehts dann mit einer mysql db bei mir so aus:

    Quellcode

    1. beliebiges zeichen: <b>%</b><br />
    2. <form method="get">
    3. <input type="text" name="suche"<? if (isset($_GET['suche'])) echo ' value="'.str_replace('"', '\"', $_GET['suche']).'"'; ?>>
    4. <select name="wo" size="1">
    5. <option value="de"<? if (strtolower($_GET['wo']) == 'de') echo " selected"; ?>>Deutsch->Japanisch</option>
    6. <option value="jp"<? if (strtolower($_GET['wo']) == 'jp') echo " selected"; ?>>Japanisch->Deutsch</option>
    7. </select>
    8. <input type="submit" value=" go ">
    9. </form>
    10. <?
    11. if(!isset($_GET['suche'])) exit;
    12. switch(strtolower($_GET['wo'])){
    13. case 'de':
    14. $wo = 'de';
    15. $erg = 'jp';
    16. break;
    17. case 'jp':
    18. $wo = 'jp';
    19. $erg = 'de';
    20. break;
    21. default:
    22. $wo = 'de';
    23. $erg = 'jp';
    24. }
    25. $suche = trim($_GET['suche']);
    26. if(strlen($suche) < 3)
    27. die("<b>fehler: </b>suchbegriff muss aus mindestens 3 zeichen bestehen.");
    28. $suche = str_replace('%', '.*', $suche);
    29. // verbingung zu sql
    30. mysql_connect('localhost', 'user', 'pw')
    31. or die(mysql_error());
    32. // db auswählen
    33. mysql_select_db('meine_db')
    34. or die(mysql_error());
    35. $q = mysql_query("select `$wo`, `$erg` from `woerterbuch` where `$wo` like '%$suche%i'")
    36. or die(mysql_error());
    37. echo "<table>\n";
    38. $s_suchbegriffe = str_replace('.*', ' ', $suche);
    39. $suchbegriffe = explode(' ', $s_suchbegriffe);
    40. $treffer = 0;
    41. while(list($t_wo, $t_erg) = mysql_fetch_array($q)){
    42. // hightlight
    43. foreach($suchbegriffe as $s)
    44. $t_wo = str_replace($s, "<b>".$s."</b>", $t_wo);
    45. echo "<tr>\n <td>".$t_wo."</td>\n <td>".$t_erg."</td>\n</tr>\n";
    46. $treffer++;
    47. }
    48. echo "<tr>\n <td colspan=2>__________<br />".$treffer." Treffer</td>\n</tr>\n</table>";
    49. ?>
    Alles anzeigen



    Sooo, wo is mein Fehler, oder wie doof bin ich wirklich?
  • "d0nUt" schrieb:

    was genau funktioniert nicht? Hast du Probleme bei der Ein- oder Ausgabe?
    Wann soll dieses continue bei der Eingabe. Die Variable wird in der foreach Schleife immer gesezt.


    hat sich erledigt, funzt soweit ^^
    mein xammp nur hatte ne Macke.
    Weiß nich mehr ewarum ich das mit reingenommen habe,
    ich sollte mir angewöhnen, mein source zu kommentieren...
  • "schreient" schrieb:

    "d0nUt" schrieb:

    was genau funktioniert nicht? Hast du Probleme bei der Ein- oder Ausgabe?
    Wann soll dieses continue bei der Eingabe. Die Variable wird in der foreach Schleife immer gesezt.


    hat sich erledigt, funzt soweit ^^
    mein xammp nur hatte ne Macke.
    Weiß nich mehr ewarum ich das mit reingenommen habe,
    ich sollte mir angewöhnen, mein source zu kommentieren...


    Ausserdem ist es ratsam PHP von HTML zu trennen :)

    Nur so, wo wir beim angewöhnen sind :roll:

    Kleiner Tipp am Rande... :)