Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Textdatei(en) von Musikdatenbank in mysql-Datenbank schreiben

Frage Entwicklung Datenbanken

Mitglied: fandangoo

fandangoo (Level 1) - Jetzt verbinden

07.08.2014 um 15:50 Uhr, 1319 Aufrufe, 8 Kommentare

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?
Mitglied: mrtux
07.08.2014, aktualisiert um 17:36 Uhr
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...

mrtux
Bitte warten ..
Mitglied: fandangoo
07.08.2014 um 20:51 Uhr
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.
Bitte warten ..
Mitglied: wiesi200
07.08.2014 um 20:59 Uhr
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.
Bitte warten ..
Mitglied: fandangoo
07.08.2014 um 21:22 Uhr
FLACs, nicht MP3s. 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.
Bitte warten ..
Mitglied: wiesi200
07.08.2014 um 21:31 Uhr
Zitat von fandangoo:

FLACs, nicht MP3s. 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.
Bitte warten ..
Mitglied: fandangoo
07.08.2014 um 23:59 Uhr
Was die Musikdateien angeht: es sollte dich nicht kümmern. 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... 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.
Bitte warten ..
Mitglied: LordXearo
08.08.2014, aktualisiert um 08:15 Uhr
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
Bitte warten ..
Mitglied: 109424
11.08.2014 um 09:25 Uhr
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.
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Webbrowser
gelöst Daten in entfernte Mysql DB schreiben (3)

Frage von nullacht15 zum Thema Webbrowser ...

Batch & Shell
gelöst Batch-Skript: Messdaten in Textdatei finden und in eine neue Datei schreiben (5)

Frage von habmalnefrage zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...