theEase: dbase Dateien mit php auslesen...

Hallo an alle!

Ich hab so ne kleine Frage auf die ich bis jetzt leider noch nirgendwo eine Antwort gefunden habe...

Das Auslesen von dbase Dateien soll mit php geschehen... funktioniert soweit auch. Kann ich da auch wie bei SQL zum Beispiel Regeln festlegen indenen ich die Abfrage begrenzen kann? (SELECT xxx FROM xxx WHERE xxx ...)

Ich bedanke mich im vorraus für Eure Hilfe...

thx

  1. Das Auslesen von dbase Dateien soll mit php geschehen... funktioniert soweit auch. Kann ich da auch wie bei SQL zum Beispiel Regeln festlegen indenen ich die Abfrage begrenzen kann? (SELECT xxx FROM xxx WHERE xxx ...)

    Du brauchst auch in PHP SQL als Abfragesprache, d.h. Du führst in PHP SQL-Abfragen durch :

    $verbindung = @mysql_pconnect($server,$user,$password);

    $ergebnis = mysql_query ("SELECT ... FROM ...",$verbindung);

    usw.

    dürfte in jedem PHP-Buch zu finden sein.

    Henk

    1. Sorry, habe das mit dbase wohl überlesen.

      damit kenne ich mich nicht aus...

      Henk

      1. Sorry, habe das mit dbase wohl überlesen.

        damit kenne ich mich nicht aus...

        Henk

        Das mit php wußte ich schon alles ;o)

        Macht nix. Trotzdem danke!

  2. Hallo!

    Das Auslesen von dbase Dateien soll mit php geschehen... funktioniert soweit auch. Kann ich da auch wie bei SQL zum Beispiel Regeln festlegen indenen ich die Abfrage begrenzen kann? (SELECT xxx FROM xxx WHERE xxx ...)

    Begrenzen kannst Du Ergebnisse mit LIMIT.

    nur der ersten 10 Zeilen
     SELECT * FROM tabname LIMIT 10;

    ab der 10 Zeile, 20 Zeilen ausgeben
     SELECT * FROM tabname LIMIT 10,20;

    mit ORDER BY und WHERE kannst Du nun die Ausgaben noch spezifizieren.

    Du kannst Für das ganze auch nur PHP verwenden, macht aber keine Sinn oder ist zu aufwendig. Hole Dir die Daten doch geordnet aus der Datenbank und dann gebe sie mit PHP aus. Ist auf alle Fälle streßfreier. Du kannst Dir ja über abfragen ein SQL-Statement zusammen bauen.

    Am besten ist, Du schaust mal in die Doku, der von Dir verwendeten Datenbank. Vielen Datenbanken unterstützen nicht den gesamten SQL-Umfang, oder haben spezifische Features, wie Funktionen usw.

    MfG, André Laugks

    1. Hallo!

      Das Auslesen von dbase Dateien soll mit php geschehen... funktioniert soweit auch. Kann ich da auch wie bei SQL zum Beispiel Regeln festlegen indenen ich die Abfrage begrenzen kann? (SELECT xxx FROM xxx WHERE xxx ...)

      Begrenzen kannst Du Ergebnisse mit LIMIT.

      nur der ersten 10 Zeilen
      SELECT * FROM tabname LIMIT 10;

      ab der 10 Zeile, 20 Zeilen ausgeben
      SELECT * FROM tabname LIMIT 10,20;

      mit ORDER BY und WHERE kannst Du nun die Ausgaben noch spezifizieren.

      Du kannst Für das ganze auch nur PHP verwenden, macht aber keine Sinn oder ist zu aufwendig. Hole Dir die Daten doch geordnet aus der Datenbank und dann gebe sie mit PHP aus. Ist auf alle Fälle streßfreier. Du kannst Dir ja über abfragen ein SQL-Statement zusammen bauen.

      Am besten ist, Du schaust mal in die Doku, der von Dir verwendeten Datenbank. Vielen Datenbanken unterstützen nicht den gesamten SQL-Umfang, oder haben spezifische Features, wie Funktionen usw.

      MfG, André Laugks

      Danke, aber ich müßte die Anfrage für ne dbase Datei kennen.... also SELECT xxx FROM xxx WHERE xxx als dbase syntax, falls es sowas gibt....

      Danke trotzdem!

      MfG

      TheEase

      1. Hallo!

        Danke, aber ich müßte die Anfrage für ne dbase Datei kennen.... also SELECT xxx FROM xxx WHERE xxx als dbase syntax, falls es sowas gibt....

        Mhhhh, SELECT, FROM, WHERE, LIMIT und ORDER BY sollte eigentlich jede DB können. Wie sieht es den mit der Doku dbase aus? Steht da nicht drin, was dbase an SQL unterstützt, bzw. zusätzlich Features? In der Doku wirst Du auch keine fertige Abfrage finden...!

        Du kannst Dir Deine "Regeln" auch mit PHP machen. Nur wenn Du Daten sortieren möchtest, nur bestimmte Datensätze ausgeben, kommst Du mal schnell auch eine Menge Schleifen, Arrays, etc.. Für 5 Schleifen und 5 Arrays mit PHP, benötigst Du nur vielleicht 10 Anweisungen mit SQL. Man sollte natürlich den Aufbau der Datenbank kennen, damit man auch weis, was und wie man was abfragen kann.

        MfG, André Laugks

        1. Hallo!

          Danke, aber ich müßte die Anfrage für ne dbase Datei kennen.... also SELECT xxx FROM xxx WHERE xxx als dbase syntax, falls es sowas gibt....

          Mhhhh, SELECT, FROM, WHERE, LIMIT und ORDER BY sollte eigentlich jede DB können. Wie sieht es den mit der Doku dbase aus? Steht da nicht drin, was dbase an SQL unterstützt, bzw. zusätzlich Features? In der Doku wirst Du auch keine fertige Abfrage finden...!

          soviel ich weiß hat dbase garkein sql ;o)

          Du kannst Dir Deine "Regeln" auch mit PHP machen. Nur wenn Du Daten sortieren möchtest, nur bestimmte Datensätze ausgeben, kommst Du mal schnell auch eine Menge Schleifen, Arrays, etc.. Für 5 Schleifen und 5 Arrays mit PHP, benötigst Du nur vielleicht 10 Anweisungen mit SQL. Man sollte natürlich den Aufbau der Datenbank kennen, damit man auch weis, was und wie man was abfragen kann.

          die Struktur kenne ich.... ;o) nur mit den Anfragen komme ich so voll nicht klar. Die dbase Datei hat um die 50000 Zeilen, und das soll dann so hin und wieder in eine MySQL Datenbank importiert werden....
          Hatte gedacht könnte da so schön wie bei SQL abfragen einbauen... ;o)

          Und wenn ich meine eigenen Abfragen baue dauert das Update ja trotzdem ewig... nee, das gefällt mir noch nicht....

          Muß ich wohl mal weitersuchen....

          Trotzdem danke an alle!

          1. Hallo!

            soviel ich weiß hat dbase garkein sql ;o)

            Ja! Ich habe eben mal ein wenig die Suchmaschinen befragt! PHP unterstützt dbase auch nur mit ein paar Funktion, damit man hin und her exportieren/importieren kann.

            die Struktur kenne ich.... ;o) nur mit den Anfragen komme ich so voll nicht klar. Die dbase Datei hat um die 50000 Zeilen, und das soll dann so hin und wieder in eine MySQL Datenbank importiert werden....
            Hatte gedacht könnte da so schön wie bei SQL abfragen einbauen... ;o)

            Und wenn ich meine eigenen Abfragen baue dauert das Update ja trotzdem ewig... nee, das gefällt mir noch nicht....

            MMhhhhh, ich hatte letztens mal einen ziemlich große Datei (20.000 Zeilen) mit PHP bearbeitet. Ich konnte keinerlei Geschwindigkeitseinbußen feststellen.

            Vielleicht ist Dein PHP-Code etwas schwerfällig?

            Ich glaube, ich würde mir eine Funktion/Klasse schreiben, damit ich flexibel mit den dbase-Dateien arbeiten könnte. Also das man nur noch Übergabeparameter angibt...

            dbase(Datei, Spalten, Sortieren, AnzahlZeile) -> dbase("name.dbf", "id, name, ort", "absteigent", "20")
            Hier mußt Du dann aber wieder ein haufen Routinen innerhalb der Funktion/Klasse schreiben, weil Du ja die Datei auslesen mußt, Zeile suchen etc.,... schon blöd irgendwie.

            Wie sieht es dann aus, wenn Du mit einer DB arbeitest und dann immer die Datenbank zu einer dbf-Datei exportieren. Aber wenn Du die Struktur einer dbf-Datei kennst, könntest Du die ja auch schreiben. Alle Daten aus der Datenbank holen und dann eine dbf-Datei schreiben. Kann Access viellicht solch eine Datei erstellen/exportieren? Auf Access kannst Du über ODBC mit PHP zugreifen....! Du verwendet die Datenbank als Bearbeitungsmittel, vorher holst Du Dir die dbf-Datei rein und wenn Du fertig bist, exportierst Du sie?! Ist mal so ein Gedanke von mir.

            MfG, André Laugks

  3. Hallo !

    In der PHP-Doku findet man dazu:

    "X. dBase functions

    These functions allow you to access records stored in dBase-format (dbf) databases.

    There is no support for indexes or memo fields. There is no support for locking, too. Two concurrent webserver processes modifying the same dBase file will very likely ruin your database.

    Unlike SQL databases, dBase "databases" cannot change the database definition afterwards. Once the file is created, the database definition is fixed. There are no indexes that speed searching or otherwise organize your data. dBase files are simple sequential files of fixed length records. Records are appended to the end of the file and delete records are kept until you call dbase_pack()().

    We recommend that you do not use dBase files as your production database. Choose any real SQL server instead; MySQL or Postgres are common choices with PHP. dBase support is here to allow you to import and export data to and from your web database, since the file format is commonly understood with Windows spreadsheets and organizers. Import and export of data is about all that dBase support is good for."

    Kurz gesagt: Sieht schlecht aus.

    Soweit ich weiß, gibt als allerdings für Perl einen DBD-Treiber für XBase-Dateien. Dieser müsste dann, wenn ich nicht irre, auch SQL-Kommandos emulieren können.

    Vielleicht hilft dir das ja weiter.

    Gruß,

    kerki