Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 1378 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Erstellungsdatum vor jede Zeile einer Textdatei schreiben (5)

Frage von freakonaleash zum Thema Batch & Shell ...

VB for Applications
gelöst Feld mit CSV-Daten aus MySQL-Datenbank einlesen (3)

Frage von Andreas.HH1 zum Thema VB for Applications ...

Sonstige Systeme
gelöst Mit PDF Parser Content Splitter in Datenbank schreiben (1)

Frage von Zero01 zum Thema Sonstige Systeme ...

Datenbanken
Tool oder Dienst für E-Mail (POP3) zu MySQL Datenbank (3)

Frage von bounee zum Thema Datenbanken ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Server
Bilder aus dem Web mit CSV runterladen (30)

Frage von Yannosch zum Thema Server ...

Server-Hardware
Bestehendes Raid erweitern um 4 gleiche Platten! (Verständnis Fragen) (12)

Frage von Hendrik2586 zum Thema Server-Hardware ...

Windows Update
WSUS 4 (Server 2012 R2) - Windows 10 Updates nicht möglich (12)

Frage von c0d3.r3d zum Thema Windows Update ...