Ermitteln des als nächst verwendeten Autoincremt Wertes

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

  • Ermitteln des als nächst verwendeten Autoincremt Wertes

    Hey,

    wenn ich für mein dyn. Berechtigungssystem einen neuen User eintrage so muss ich sowohl die User Table, User_Gruppe mit einer Standardgruppe und die User_Rechte mit dem Standardrecht User mit jeweils der aus der User Table erhaltene User_ID einen Insert machen.

    Ich muss also ermitteln welche ID als nächstes vergeben wird und diese dann für die übrigen Tables verwenden......

    Im Manual bin ich nun auf LAST_INSERT_ID(); gestossen wenn ich diesen Wert um +1 erhöhe müsste ich doch die neue ID erhalten.......

    Kann aber im mom noch nicht abwägen ob es hierbei vielleicht Komplikationen gibt....
    [color=blue]MfG Payne_of_Death[/color]

    [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
    [color=red]Merke:[/color]
    [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

    Murphy`s Importanst LAWS
    Jede Lösung bringt nur neue Probleme
    Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
    In jedem kleinen Problem steckt ein großes, das gern raus moechte.

  • #2
    Du trägst zuerst den User ein und "merkst" dir die ID? Was spricht dagegen?

    Offe

    Kommentar


    • #3
      PHP-Code:
      $result=mysql_query("SHOW TABLE STATUS FROM '".$databasename."' LIKE '".$tabelle."'");
      $showtable=mysql_fetch_array($result);
      echo 
      $showtable[Auto_increment]; 
      das ermittelt den nächsten auto_inc-wert

      Kommentar


      • #4
        @PoD
        deine frage war die woche schon mal da, wenn auch nicht von dir ...

        aber wie Offe es gemacht hat, ist es richtig. er den user in die tab schreiben, dann mit last_insert_id() die nun vergebene id auslesen und zwischenspeichern, und anschliessen die user_rechte schreiben. die rechte-ids sind die ja durch das form bekannt. du kannst /solltest diese evtl vorher noch prüfen...

        alternativ kannst du das mit der LID auch nur mit sql machen..

        Code:
        INSERT user SET UserName = 'testuser', UserIrgendwas = '...';
        INSERT user_rechte (UserId, RechteId) VALUES (LAST_INSERT_ID(), 1);
        hier noch was zum lesen....

        http://www.mysql.com/doc/en/example-Foreign_keys.html
        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


        • #5
          wozu willst du die id denn wissen ? zum einfügen ?

          probier mal folgendes ..

          als annahme .. id, name, registered ..
          INSERT INTO table VALUES ( default, 'coragon', UNIX_TIMESTAMP() )

          wichtig ist das default .. mysql fügt den standart wert ein, null oder was auch immer .. bzw die id wenn das feld vom typ autoincrement ist ..
          mfg,
          [color=#0080c0]Coragon[/color]

          Kommentar


          • #6
            so nochmal.....

            Ich erstelle einen User, d.h. ich bekomme einen neuen Autoincrement Wert in der User Table klar oder?

            Danach lege ich eine Standardrechtegruppe mit der nun erhaltenen UserID aus der User Table an

            Weiteres wird dann noch in der Rechte Table mit der gerade eben erhaltenen UserID aus der Usertable hinzugefügt....

            Diese Function ist nur fürs hinzufügen von User gedacht die Rechte werden woanders geprüft

            Lots of thx grosses @Haxilein
            [color=blue]MfG Payne_of_Death[/color]

            [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
            [color=red]Merke:[/color]
            [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

            Murphy`s Importanst LAWS
            Jede Lösung bringt nur neue Probleme
            Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
            In jedem kleinen Problem steckt ein großes, das gern raus moechte.

            Kommentar


            • #7
              k.p. aber hättest du das nciht selber draufkommen müssen?
              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


              • #8
                Original geschrieben von Abraxax
                k.p. aber hättest du das nciht selber draufkommen müssen?
                naja ich neige dazu immer alles viel zu kompliziert zu machen.....

                Und auf die Idee das Mysql intern mit so eine Autoincrement Table arbeitet war mir zu diesem Zeitpunkt wohl nicht im Gedächnis, denn woher soll die Function sonst wissen jo die ID hab ich letztens vergeben......

                *grml* könnte mich jeden Tag peitschen bei sowas.....
                [color=blue]MfG Payne_of_Death[/color]

                [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                [color=red]Merke:[/color]
                [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                Murphy`s Importanst LAWS
                Jede Lösung bringt nur neue Probleme
                Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                Kommentar


                • #9
                  OffTopic:
                  Original geschrieben von Payne_of_Death
                  [...] *grml* könnte mich jeden Tag peitschen bei sowas.....
                  dann pack mal dein studio aus und hole dir jemanden von der straße ...
                  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