Suchen nach Dateien, schreiben in mysqlDB

Dieses Thema: "Suchen nach Dateien, schreiben in mysqlDB" im Forum "Ruby, php, Perl, Python ..." wurde erstellt von heckmic, 15.09.2006.

  1. #1 heckmic, 15.09.2006
    heckmic

    heckmic Mitglied

    Dabei seit:
    26.08.2006
    Beiträge:
    25
    Zustimmungen:
    0
    Hallo,

    mir stellt sich folgendes Problem:

    Ich habe Dateien (*.vdr) in einem bestimmten Ordner /.../tv/
    Die Pfade zu den Dateien würde ich gerne in eine Datenbank schreiben, sodass ich diese in einer Weboberfläche verwenden kann.
    Ich möchte eine GUI bauen, die es vereinfacht die Filme in DVD, HALF-DVD, VCD, SVCD zu konvertieren. Der anwender soll außerdem einen Zeitpunkt für die Konvertierung der Files eingeben können.

    Also: Wie kann ich die Pfade zu den Files in eine DB schreiben (am liebsten PHP) UND wie kann ich Systembefehle über PHP ausführen?
     
  2. hwj

    hwj Doppel-As

    Dabei seit:
    23.06.2006
    Beiträge:
    131
    Zustimmungen:
    0
    Ort:
    Bei Buxtehude
    Hört sich nach einer Auftragsprogrammierung an, wo darf ich die Rechnung hinschicken ?:D

    Ich würde es mal so starten:
    Code:
     find /pathtovdr -name "*.vdr" -print | 
      perl -e 'while(<>) { 
             chop; 
             print "insert into FilenameTable values (\047$_\047);\n"; 
       }' |
      mysql -p databasename
    Leerzeichen oder Sonderzeichen im Pfad/Dateiname lasse ich mal als Hausaufgabe.

    Heiko
     
  3. #3 heckmic, 15.09.2006
    Zuletzt bearbeitet: 15.09.2006
    heckmic

    heckmic Mitglied

    Dabei seit:
    26.08.2006
    Beiträge:
    25
    Zustimmungen:
    0
    Ne, das bekomme ich grade noch so hin. Mir fällt das jetzt nur mit dem Dateizugriff schwehr. Ich weiß trozdem jetzt nicht so recht, wie ich das nun in die DB bekomme...

    Ausgabe sieht schonmal so aus:

    /mnt/ftp/tv/Jackass#3A_The_Movie/2006-09-09.23.37.99.99.rec/001.vdr
    /mnt/ftp/tv/Jackass#3A_The_Movie/2006-09-09.23.37.99.99.rec/002.vdr

    Die Datenbank heißt vdr, die Tabelle recs und die Spalten recid,pfad

    Das Script:

    find /mnt/ftp/tv -name "0*.vdr" -print |
    perl -e 'while(<>) {
    chop;
    print "insert into recs values (\047$_\047);\n";
    }' |
    mysql -p --user=******** --password=******** vdr



    Das ist die Fehlermeldung: ERROR 1136 (21S01) at line 1: Column count doesn't match value count at row 1
     
  4. hwj

    hwj Doppel-As

    Dabei seit:
    23.06.2006
    Beiträge:
    131
    Zustimmungen:
    0
    Ort:
    Bei Buxtehude
    Hm, das ist klar, woher soll ich aus wissen, wie Deine Datenbanktabelle ausschaut ...

    Du mußt jetzt das kleine Perl-Skript so erweitern, das der SQL-Code, der da rauskommt mit der Datenbank verträglich ist. Vermutlich ist die "recid" eine "primary key / auto_increment" - Spalte, dann kann man "null" einfügen. Dann müßte folgendes schon klappen:

    Code:
    find /mnt/ftp/tv -name "0*.vdr" -print |
    perl -e 'while(<>) {
    chop;
    print "insert into recs values (null, \047$_\047);\n";
    }' |
    mysql -p --user=******** --password=******** vdr
    Heiko
     
  5. #5 heckmic, 15.09.2006
    heckmic

    heckmic Mitglied

    Dabei seit:
    26.08.2006
    Beiträge:
    25
    Zustimmungen:
    0
    Jau, das geht! Danke!
     
  6. #6 Wolfgang, 15.09.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Im Grunde geht das mit Perl direkt, was sicher schneller ist.
    Code:
    use DBI;
    use strict;
    use File::Find;
    my $data = "dbi:mysql:database=db_name";
    my $user = "user";
    my $pass = "geheim";
    my $db = DBI->connect($data, $user, $pass)
       or die "Verbindung zur Datenbank fehlgeschlagen: " . $DBI::errstr;
    ....
    
    Gruß Wolfgang
     
  7. #7 heckmic, 15.09.2006
    Zuletzt bearbeitet: 15.09.2006
    heckmic

    heckmic Mitglied

    Dabei seit:
    26.08.2006
    Beiträge:
    25
    Zustimmungen:
    0
    Ok, jetzt ergibt sich für mich noch die Frage, warum auf der Konsole nur einfache phpscripte (ohne SQL) aufrufen kann (echo "test"; klappt). Ein mqsqlpconnect aber nicht

    @Wolfgang: Wie würdest du das jetzt weitermachen? Ich meine die "..." also den Inhalt in de db schreiben?

    Wie bekomme ich es hin, das er nur das, was dazugekommen ist reinschreibt? und das was nicht mehr da ist rauswirft?
     
  8. #8 Xanti, 16.09.2006
    Zuletzt bearbeitet: 16.09.2006
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
  9. #9 heckmic, 16.09.2006
    heckmic

    heckmic Mitglied

    Dabei seit:
    26.08.2006
    Beiträge:
    25
    Zustimmungen:
    0
    Sorry, aber ich steige da nicht hinter! Ich habe noch niemals Perl Programmiert. Kann mir nicht jemand erklären wie das in php geht und warum sich meine phpscripte auf der Konsole nicht richtig ausführen lassen im Browser schon? Nur SQL anweisugen laufen auf der Konsole auf den Hammer.
     
Thema:

Suchen nach Dateien, schreiben in mysqlDB

Die Seite wird geladen...

Suchen nach Dateien, schreiben in mysqlDB - Ähnliche Themen

  1. Chemnitzer Linux-Tage suchen nach Beiträgen

    Chemnitzer Linux-Tage suchen nach Beiträgen: Für die am 21. und 22. März 2015 stattfindenden Chemnitzer Linux-Tage ist der »Call for Lectures« online. Gesucht werden Beiträge, die unter...
  2. nach einem wort in einer textdatei suchen

    nach einem wort in einer textdatei suchen: halloooo ihr lieben, ich hoffe ihr könnt mir weiterhelfen :) ich lernen momentan die skriptsprache shell und alles was dazu gehört. ich soll...
  3. Chemnitzer Linux-Tage 2014 suchen nach Vorträgen

    Chemnitzer Linux-Tage 2014 suchen nach Vorträgen: Für die am 15. und 16. März 2014 stattfindenden Chemnitzer Linux-Tage ist nun der so genannte »Call for Lectures« online. Gesucht werden Beiträge...
  4. LibreOffice lässt nach Fehlern suchen

    LibreOffice lässt nach Fehlern suchen: In einem neuen Wettbewerb lässt das LibreOffice-Projekt nach Fehlern suchen und ruft alle Anwender und Interessenten dazu auf, Bugs zu suchen, zu...
  5. Nach Inhalt in Dateien suchen und den String aus Datei löschen

    Nach Inhalt in Dateien suchen und den String aus Datei löschen: Hallo alle miteinander, ich bin auf der Suche nach einer Möglichkeit nach Dateien mit einem bestimmten Inhalt zu suchen. Wenn der String in der...