Mike: Datenbank Eintrag

Hallo,

habe folgendes Problem.

Ich möchte gerne durch auslösen eine Submit Buttons eine Eintragung in die Datenbank machen. Es gibt in der Tabelle in der der Eintrag geschieht einen Spalte namens "name".

Diese Spalte "name" wird bei jedem Knopfdruck anderst gefüllt und zwar nach Name_durchnummerierung. ottop_1 ottop_2 ottop_3, etc....

Nun möchte ich gerne, dass wenn man den Submit Button drückt das Programm checkt welches ottop das letzte war und dort weiter macht. Oder wenn ein ottop_X in der Reihenfolge fehlt. (zB. ottop1 ottop3 ottop4), dass er das fehlende auffüllt. Sprich in diesem Fall ottop2.

Auf keinen Fall ottop und die Nr. in getrennte Spalten schreiben...

Danke für eure Hilfe....

  1. Hello,

    Auf keinen Fall ottop und die Nr. in getrennte Spalten schreiben...

    Wenn immer "ottop_" geschrieben wird, hat das in der Tabelle gar nichts mehr zu suchen. Das kannst Du dann dazustanzen.

    Und sonst wird Dir wohl nichts anderes übrig bleiben, als die gesamte Spalte auszulesen und mittels Schleife auf Lücken zu untersuchen.

    select ID, name form table where name is not null and trim(name) > 0;

    Liebe Grüße aus http://www.braunschweig.de

    --
    Fortschritt ensteht nur durch die Auseinandersetzung der Kreativen
    1. Hallo nochmal,

      der Name variiert auch!

      Mike

      1. Hi!

        der Name variiert auch!

        Is ja kein Problem, aber warum speicherst Du es nicht getrennt. Machts doch einfacher. Zusammensetzen ist ja dann null problemo.

        Sven

      2. Hello,

        Na, dann musst du eben den statischen Anteil abtrennen. Dafür brauchst Du eine Funktion.

        function split_name($name)
        {
          $ret = "";
          $i=0;
          while (!isnumeric($name{$i})
          {
            $ret .= $name{$i};
            $i++;
          }
          return $ret
        }

        Dann kannst Du alle Datensätez ausfiltern, deren name mit $name beginnt:

        select (felder) from tabelle where locate($name,name)=1;

        oder

        select ID, name from tabelle where name like $name%;

        Dann alles Sätze in ein Array packen.
        Dann in einer Schleife prüfen, welches der erste freie Name ist.

        $i=0;
        while (in_array($name.$i,$liste)
        {
          $i++;
        }

        echo htmlentities("nächster freier Name ist ".$name.$i);

        Liebe Grüße aus http://www.braunschweig.de

        --
        Fortschritt ensteht nur durch die Auseinandersetzung der Kreativen