Grösste Zahl um eins erhöhen

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

  • Grösste Zahl um eins erhöhen

    Hallo,
    also ich habe in meiner DB verschiedene Zahlen. Pro Artikel eine Nummer. Wenn ich jetzt einen neuen Artikel schreibe, soll die grösste Zahl die bereits vorhanden ist um eins erhöht werden und dann in die DB geschrieben werden.
    Z.B. Ich habe diese Artikel:
    Haus [1]
    Auto [2]
    und wenn ich jetzt einen neuen Artikel schreibe z.B. Boot soll er automatisch die Zahl drei reinschreiben. Weiß jemand wie das geht? Also er soll sich die grösste Zahl die in der Datenbank vorhanden ist suchen und bei einem neuen Artikel um ein erhöhen.
    Mfg
    BenBay

  • #2
    Code:
    SELECT MAX(zahl)+1 FROM tabelle
    Code:
    INSERT INTO tabelle (zahl,bezeichnung) VALUES(die zahl aus dem select oben,'Hemd')
    aber warum machst du die zahl nicht als primärschlüssel und gibst dem ding noch ein auto_increment, dann musst du dich da gar nich drum kümmern
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Zu diesem Zweck besitzt MySQL die Zusatzoption "auto_increment". Bei jedem Eintrag wird die intern verwaltete Zahl um eins erhöht. Beim INSERT Befehl einfach den entsprechenden value leer lassen.

      Weitere Informationen zu auto_increment findest du hier:

      http://www.mysql.com/doc/en/example-AUTO_INCREMENT.html

      Es wäre schön gewesen, hättest du zuerst die Suche in Mitleidenschaft gezogen - denn dann hättest du sicherlich ähnliche Themen gefunden - mit den gleichen Antworten.

      EDIT:
      Öhm ... Egal - doppelt hält besser
      Eventuelle Tippfehler bei PHP-Beispielen können durchaus vorkommen, aber es geht um die grundsätzliche Möglichkeit der Anwendung.

      Es war einmal ein Benutzer, der hatte ein Problem mit ... PHP (http://de3.php.net/manual/de/) MySQL (http://dev.mysql.com/doc/mysql/de/) HTML (http://www.selfhtml.org/)

      Wer suchet, der findet: http://www.php-resource.de/forum/search.php
      Immer noch nichts? Dann frag!


      Mit freundlichen Grüßen,
      @4u

      Kommentar


      • #4
        Code:
        SELECT MAX(zahl)+1 FROM tabelle
        Das könnte passen nur die grösste Zahl soll sich DB selber raussuchen da ich Sie nicht weiß. Oder stehe ich auch dem Schlauch. Das mit dem "auto_increment" usw. das ist mit schon kal das das viel einfacher geht, ich muss aber in diesem Fall darauf verzichten.
        Mfg
        BenBay

        Kommentar


        • #5
          mit dem select sucht die db sich ja die größte zahl raus und zählt gleich 1 dazu

          aber warum musst du denn auf auto_increment verzichten?
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Oh, Sorry. Bin auf dem Schlauch gestanden. Ich mache es jetzt mit auto_increment. Hatte einen kurzen Blackout.
            Mfg
            BenBay

            Kommentar


            • #7
              Ja, moment mal. Ich benutzte ja die Zahlen für die Anordnung meiner Artikel. Also z.B. Artikel rauf oder runterschiebn. Wenn ich jetzt auto_increment benutze und lösche später einen Artikel dann funktioniert ja die ganze Anordnung nicht mehr, da jetzt ein loch entstanden ist.
              Mfg
              BenBay

              Kommentar


              • #8
                das loch hast du auch, wenn du manuell einen wert vergibst und dann
                artikel löschst.
                Kissolino.com

                Kommentar


                • #9
                  Ja, ich weiß. Muss mir das noch mal besser durchspielen und testen, denn so wird das nichts.
                  Mfg
                  BenBay

                  Kommentar


                  • #10
                    vielleicht hilft dashier weiter:
                    http://www.php-resource.de/forum/sho...threadid=20581
                    Kissolino.com

                    Kommentar


                    • #11
                      Code:
                      <?
                      include("../db_connect.php");
                      $auslesen="select * from unterkategorien where ok_id=5 order by anordnung asc";
                      $ausgabe=mysql_query($auslesen);
                      while($artikel=mysql_fetch_array($ausgabe)){
                      $test[] = $artikel['anordnung'];
                      }
                      function ausgeben($x)
                      {
                      echo"$x,";
                      }
                      $hans = max(array_walk($test, "ausgeben"));
                      echo $hans
                      ?>
                      Wieso klappt das max() nicht? er gibt mir das Array aus aber bei max() bringt er mir einen Fehler! Weiß jemand rat?
                      Mfg
                      BenBay

                      Kommentar


                      • #12
                        Bei "max ()" handelt es sich um keine PHP-Funktion, sondern um einen MySQL-Ausdruck - entsprechend muss max, mit einem Komma getrennt, hinter das * der Abfrage.
                        Eventuelle Tippfehler bei PHP-Beispielen können durchaus vorkommen, aber es geht um die grundsätzliche Möglichkeit der Anwendung.

                        Es war einmal ein Benutzer, der hatte ein Problem mit ... PHP (http://de3.php.net/manual/de/) MySQL (http://dev.mysql.com/doc/mysql/de/) HTML (http://www.selfhtml.org/)

                        Wer suchet, der findet: http://www.php-resource.de/forum/search.php
                        Immer noch nichts? Dann frag!


                        Mit freundlichen Grüßen,
                        @4u

                        Kommentar


                        • #13
                          So?
                          Code:
                          <?
                          include("../db_connect.php");
                          $auslesen="select * from unterkategorien where ok_id=5 order by anordnung asc";
                          $ausgabe=mysql_query($auslesen);
                          while($artikel=mysql_fetch_array($ausgabe)){
                          $test[] = $artikel['anordnung'];
                          }
                          function ausgeben($x)
                          {
                          echo"$x,";
                          }
                          
                          
                          $auslese="select anordnung ,max(array_walk($test, "ausgeben")) from unterkategorien where ok_id=5";
                          $ausgab=mysql_query($auslese);
                          $artike=mysql_fetch_array($ausgab);
                          echo $artike['anordnung']
                          ?>
                          Da bekomme ich auch einen Fehler.
                          Mfg
                          BenBay

                          Kommentar


                          • #14
                            Original geschrieben von BenBay
                            So?
                            nein.


                            so:
                            $auslese="SELECT MAX(spaltenname) from unterkategorien where ok_id=5";
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Code:
                              <?
                              $auslese="SELECT MAX(anordnung) from unterkategorien where ok_id=5";
                              $ausgab=mysql_query($auslese);
                              $artike=mysql_fetch_array($ausgab);
                              echo $artike['anordnung']
                              ?>
                              Habe es jetzt so, aber jetzt bringt er mir nur eine leere Seite.
                              Mfg
                              BenBay

                              Kommentar

                              Lädt...
                              X