fandangoo
Goto Top

Textdatei(en) von Musikdatenbank in mysql-Datenbank schreiben

Hallo!

Ich möchte langsam wieder einmal meine Musikdatenbank updaten - um immer wieder mal zu schauen, ob Album xy schon auf Festplatte xy vorhanden ist bzw. was noch fehlt etc. Es ist zwar schon eine Musikdatenbank vorhanden - aber die Suche dauert eindeutig zu lange.

Momentanes Schema: Zugriff per Browser auf search.***.de ist realisiert. Alle Daten liegen in Form von *.txt-Files auf dem Server. Es existiert ein PHP-Sucheskript, welches nach Eingabe von Begriff xy (z.B. steve roach) alle Zeilen nacheinander mit (in diesem Fall) "steve roach" ausspuckt. Momentan geschieht das jedoch NICHT über mysql. Die Textdateien werden direkt auf dem Server durchsucht. Das dauert viel zu lange, da es viele Textdateien sind, die außerdem noch sehr groß sind.

Zukünftig soll es andersd werden: Jede Textdatei soll mit phpmyadmin in die mysql-Datenbank geschrieben werden - jede Textdatei soll eine eigene Tabelle bekommen. Z.B.: hdd-1.txt > Tabelle "hdd-1", um diese bei Bedarf zu updaten. Was das Suche-Skript angeht, werde ich eine Lösung mit Codeschnippseln finden. Bei mir scheitert es jedoch am Hochladen der Datensätze in die Datenbank via phpmyadmin selbst. Es sind große Textdateien zwischen 10mb und 20mb - immer mit nur einem Datensatz pro Zeile.

Beispiel (Auszug) einer Textdatei:

/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1991 - Rain Tree Crow
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1991 - Rain Tree Crow/01 Big Wheels in Shanty Town.flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1991 - Rain Tree Crow/02 Every Colour You Are.flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1991 - Rain Tree Crow/03 Rain Tree Crow.flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1991 - Rain Tree Crow/04 Red Earth (As Summertime Ends).flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1991 - Rain Tree Crow/05 Pocket Full of Change.flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1991 - Rain Tree Crow/06 Boat's for Burning.flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1991 - Rain Tree Crow/07 New Moon at Red Deer Wallow.flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1991 - Rain Tree Crow/08 Blackwater.flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1991 - Rain Tree Crow/09 A Reassuringly Dull Sunday.flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1991 - Rain Tree Crow/10 Blackcrow Hits Shoe Shine City.flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1991 - Rain Tree Crow/11 Scratchings on the Bible Belt.flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1991 - Rain Tree Crow/12 Cries and Whispers.flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1991 - Rain Tree Crow/13 I Drink to Forget.flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1993 - Darshan
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1993 - Darshan/1 Darshan (The Road to Graceland) (translucent remix by The Grid).flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1993 - Darshan/2 Darshana.flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1993 - Darshan/3 Darshan (The Road To Graceland).flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1993 - The First Day
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1993 - The First Day/01 - God's Monkey.flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1993 - The First Day/02 - Jean The Birdman.flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1993 - The First Day/03 - Firepower.flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1993 - The First Day/04 - Brightness Falls.flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1993 - The First Day/05 - 20th Century Dreaming (A Shaman's Song).flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1993 - The First Day/06 - Darshan (The Road To Graceland).flac
/Volumes/hdd-1/Downloads-FLAC/David Sylvian/1993 - The First Day/07 - Bringing Down The Light.flac

Die Frage ist nun, was muss ich in phpmyadmin eingeben, damit der ganze Spaß in die Datenbank geschrieben wird?

Content-Key: 245862

Url: https://administrator.de/contentid/245862

Ausgedruckt am: 19.03.2024 um 07:03 Uhr

Mitglied: mrtux
mrtux 07.08.2014 aktualisiert um 17:36:50 Uhr
Goto Top
Hi!

Du solltest erstmal bei den Basics bleiben und dir erst mal eine sinnvolle Datenbankstruktur einfallen lassen, dann geht der Rest fast wie von selbst. Ähhmm und sorry aber so wie ich das sehe, hast Du die Funktion und Aufgabe einer Datenbank noch nicht so wirklich verinnerlicht... face-wink

mrtux
Mitglied: fandangoo
fandangoo 07.08.2014 um 20:51:41 Uhr
Goto Top
Die Daten sind nun in der Datenbank - alle Daten sind in Datenbank a. Diese wiederum hat Tabellen (hdd-1 und hdd-2). hdd-1 und hdd-2 sind rappelvoll mit Daten gefüttert mit jedoch nur nur einem Feld "filesfolders".

http://i7.minus.com/iGiAJhgV3axwK.jpg

Die Frage ist nun, wie es realisiert werden kann, dass der Benutzer auf der Website in der Suchemaske Begriff xy eingeben kann, damit im Ergebnis alle Datensätze ausgegeben werden, die Begriff xy beinhalten.
Mitglied: wiesi200
wiesi200 07.08.2014 um 20:59:16 Uhr
Goto Top
Hallo,

Wo die ganzen MP3s herkommen muss man jetzt nicht fragen.

Wie jetzt schon @mrtux angedeutet hat. Solltest du dich erst mal etwas besser mit Datenbanken befassen. Und dir auch mal ein vernünftiges design einfallen lassen.

Das mit den verschiedenen Tabellen ist meiner Meinung nach schon Blödsinn.

Und wenn du schon Bilder verwenden willst dann nutz bitte die Interne Bildupload Funktion.
Mitglied: fandangoo
fandangoo 07.08.2014 um 21:22:00 Uhr
Goto Top
FLACs, nicht MP3s. face-smile Eigen-Rips, also wo ist das Problem? Abgesehen davon, ist es nicht das Thema hier.

Design ist zweitrangig.

Verschiedene Tabellen deswegen, weil ich die Festplatteninhalte jeweils in Textdateien ausgelesen habe: hdd-1.txt, hdd-2.txt etc. - Sicher kann man das auch anders lösen. Da ich die Festplattendaten aber ab und an ändere, wollte ich an den CSVs nicht mehr rumfummeln, sondern gleich in die Datenbank einpflegen. Ein Feld - mehr nicht.

Internes Bilderuploaden - okay.
Mitglied: wiesi200
wiesi200 07.08.2014 um 21:31:57 Uhr
Goto Top
Zitat von @fandangoo:

FLACs, nicht MP3s. face-smile Eigen-Rips, also wo ist das Problem? Abgesehen davon, ist es nicht das Thema hier.
Haarspalterei. Eigen-Rips und als Verzeichnis Download-FLACS. Ja klar, halt andere nicht für blöd. Aber egal.


Design ist zweitrangig.

Eben nicht wenn du eine Performante suche verwirklichen willst.

Verschiedene Tabellen deswegen, weil ich die Festplatteninhalte jeweils in Textdateien ausgelesen habe: hdd-1.txt, hdd-2.txt etc.
- Sicher kann man das auch anders lösen. Da ich die Festplattendaten aber ab und an ändere, wollte ich an den CSVs nicht
mehr rumfummeln, sondern gleich in die Datenbank einpflegen. Ein Feld - mehr nicht.

Du hättest nicht rumfummeln müssen. Anders lösen währe vernünftig lösen gewesen.
Wie schon mein Kollege erwähnt hat. Den Sinn einer Datenbank hast du anscheinend nicht verstanden.
Mitglied: fandangoo
fandangoo 07.08.2014 um 23:59:05 Uhr
Goto Top
Was die Musikdateien angeht: es sollte dich nicht kümmern. face-smile In meinem Emailanhang steht manchmal auch Bombenbau-Anleitung. Im Download-Ordner sind bezahlte Bandcamp-Alben. Wo ich was und wieviel von wem in welche Ordner auch immer reinschiebe, ist hier egal. Don't care...

Btw: Ich habe die ganze Geschichte mittlerweile alleine gebacken bekommen. Die Suche geht ratzfatz. Es war nicht trivial, aber dank http://www.convertcsv.com/csv-to-sql.htm bin ich doch noch zum Erfolg gekommen.

Die Ordnerstruktur ist auf jeder Festplatte anders. Deswegen gibt es nur ein Feld "folderfiles". Für meine Zwecke ausreichend. Viele Wege führen nach Rom. Warum nicht auch mal 'n anderer... face-smile Ich wollte nicht ewig und drei Tage mich um Datenbanken kümmern.

Jetzt geht es nur noch um den Zeichensatz, der falsch zu sein scheint. Da einiges an kyrillischen Zeichen in Datei- und Ordnernamen vorhanden ist, habe ich standardsgemäß UTF-8-bzw. utf8_general_ci ausgewählt. Die PHP-Dateien sind ebenfalls UTF-8. Naja, mal schauen... Die Daten liegen jedenfalls in der Datenbank korrekt vor.
Mitglied: LordXearo
LordXearo 08.08.2014 aktualisiert um 08:15:04 Uhr
Goto Top
Hi,

ich bin kein Profi was Datenbanken angeht. Aber als Vorschlag für ein besseres Design, solltest du eine Tabelle "Interpreten" und eine "Lieder/Tracks" erstellen. Mit "Zwischen-Tabellen" stellst du dann die Verbindung her (n - m Beziehung). In dieser "Zwischen-Tabelle" erstellst du dann ein weiteres Attribut mit "Speicherort".
Wäre jetzt mein schnellschuß an Beispiel.

Viele Grüße
Xearo
Mitglied: 109424
109424 11.08.2014 um 09:25:12 Uhr
Goto Top
Hat sich dein Problem mit dem Zeichensatz mitlerweile geklärt?
Wenn nicht, kannst du mal schauen was du bekommst, wenn du folgendes SQL Statement abschickst:

SHOW CHARACTER SET;

Bei dem Ergebnis müsstest du dann mal prüfen, ob der Zeichensatz mit kyrillischen Schriftzeichen kompatibel ist.