DBase, einfach Daten anhängen, kann doch nicht so schwer sein ...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • DBase, einfach Daten anhängen, kann doch nicht so schwer sein ...

    versuche mich gerde auch an PHP und Datenbanken. Habe eine DBase DB erstellt, manuell auch einen Eintrag gemacht. Kann diesen auch auslesen, ohne Probleme.
    Versuche ich aber einen Datensatz anzuhängen, dann bekomme ich immer die Fehlermeldung die Anzahl der Datenelemente würde nicht übereinstimmen ??? Habe die gleiche Datendefinition verwendet wie bei der Erstellung der Datenbank. Habt ihr eine Idee???
    Wäre klasse!!!
    Hier mal ein code-Schnipsel ...

    <?php
    // "Datenbank"-Name
    $dbname = "c:/test.dbf";

    // Datenbank-"Definitionen"
    $def =
    array(
    array("Datum", "D"),
    array("Name", "C", 50),
    array("Alter", "N", 3, 0),
    array("Email", "C", 128),
    array("Mitglied", "L")
    );


    // Erzeugung hier abgeschaltet, hatte geklappt

    // if (!dbase_create($dbname, $def))
    // print "<strong>Error!</strong>";

    // Datenzuweisung zum Datensatzanhängen
    $ident = dbase_open($dbname,2);
    $def["Datum"]="19681031";
    $def["Name"]="Martin Mustermann";
    $def["Alter"]=99;
    $def["Email"]="Name@domain.de";
    $def["Mitglied"]=1;
    if (!dbase_add_record($ident,$def)) // hier kommt die Fehlermeldung. Befehl wird
    print "<strong>Error!</strong><br>"; // auch nicht ausgeführt.


    // Auslesen des manuell eingefügten Datensatzes, KLAPPT auch
    $def = dbase_get_record_with_names($ident,1);
    echo($def["Datum"]."<br>");
    echo($def["Name"]."<br>");
    echo($def["Alter"]."<br>");
    echo($def["Email"]."<br>");
    echo($def["Mitglied"]."<br>");

    dbase_close($ident);

    ?>

    Mache ich einen Denkfehler???

    Viele Grüße

    Eric

  • #2
    kenn mich zwar nicht mit DBase aus, aber "Alter" ist ein reserviertes Wort (bei MySQL jedenfalls), darum darf es nicht als Spaltenname verwendet werden. Evtl. ist das bei DBase genauso?

    Kommentar


    • #3
      @ P2oldi

      das hätte wirklich gut sein können, hab da mal Age eingesetzt, leider blieb
      das Ergebnis bei:
      Warning: Wrong number of fields specified
      das war es also leider nicht

      Schade

      Kommentar


      • #4
        schade eigentlich...

        werden denn alle Daten vernünftig in des Array gespeichert? Laß Dir doch mal das komplette $def ausgeben. Also zu dem Zetipunkt zwischen Befüllen des Arrays und wegschreiben in die DB. Vielleicht klappt bei der Zuweisung schon was nicht?

        Kommentar


        • #5
          @ P2oldi

          das habe ich leider auch schon ausprobiert, das klappte gut,
          habe es inzwischen auch mit 2 einfachen Char-Arrays ausprobiert
          hat es auch nicht getan

          Kommentar


          • #6
            @Tarkin
            ich habe mir zwar nicht alles durchgelesen aber mal ne frage.
            du lernt jetzt php ... mit php willst du auf eine dateibasierende DB zugreifen.

            nur als frage. was würde dagegen sprechen, wenn du mysql verwendest?

            aus meiner sicht wäre das die einfachste und umkoplizierteste lösung. die frage ist nur, was genau du machen willst.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              @ Abraxax

              vollkommen richtig. Im Normalfall würde ich auch MySQL nehmen. Doch die
              Daten sollen später von einer nicht webbasierten Anwendung übernommen werden.
              Dies ist im gegebenen Fall am einfachsten mit DBase.


              Gruß

              Tarkin

              Kommentar


              • #8
                mußt Du denn die Daten später nur einmal aus der nicht-webbasierten Andwendung übernehmen, oder kommen da städig neue Daten? Denn wenn es nur um eine Initialbefüllung geht, ist es glaub ich wirklich einfacher, die DBase Tabellen zu exportieren, und dann in eine MySQL-DB zu importieren (mit Hilfe von dbf2mysql). Hab mir nicht genau angeschaut, wie diese Funktion / dieses Prgramm arbeitet, aber evtl. kann man das auch für häufigere Transfers von DBase -> MySQL verwenden? Bei Google kommt dazu jedenfalls ne ganze Menge.

                Kommentar


                • #9
                  @ P2oldi

                  leider kommen immer neue Daten aus dem Webbasierenden Teil hinzu.
                  Die Daten werden dann weiter local verarbeitet. Der Weg andersherum,
                  local->Webbasiert klappt ja, die Daten lassen sich, einmal in der Datenbank
                  problemlos auslesen ... nur lassen sich halt vom Web keine Daten adden...

                  Gruß

                  Tarkin

                  Kommentar


                  • #10
                    ES IST VOLLBRACHT !!!

                    Wenn alles so einfach wäre grrr
                    Bei der Datenzuweisung darf dies nicht mit den Namen geschehgen,
                    sondern nur mit den Indizes. Den Datenzuweisungsteil einfach wie
                    folgt abändern:

                    // Datenzuweisung zum Datensatzanhängen
                    $ident = dbase_open($dbname,2);
                    $def[0]="19681031";
                    $def[1]="Martin Mustermann";
                    $def[2]=99;
                    $def[3]="Name@domain.de";
                    $def[4]="True";
                    if (!dbase_add_record($ident,$def))
                    print "<strong>Error!</strong><br>";

                    ... und es klappt !!!

                    Gruß

                    Tarkin
                    Zuletzt geändert von Tarkin; 14.01.2003, 10:00.

                    Kommentar


                    • #11
                      ich hatte überlegt, ob es am Array liegen könnte, aber da ich von Arrays nicht den absoluten Plan habe, wollte ich auch nichts falsches sagen

                      Aber nu ist ja alles in Butter

                      Kommentar


                      • #12
                        das mit mysql war ja auch nur ein vorschlag gewesen ...

                        aber wenn jetzt alles klappt, sind wir alle zufrieden. du aber besonders...
                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Kommentar

                        Lädt...
                        X