Tina: zusätzlicher Zähler

Hallo
wollte euch folgendes Fragen ich benötige einen zusätzlichen Zähler in meiner DB. Wie stell ich das ein das er die Zahl pro eintrag um 1 erhöht. Ich weiß ich könnte das auch mit auto_increment machen. Dieser ist allerdings bereits vergeben.
Die Zeile soll ProID heißen
Aussehen sollte das ganze so:

ID  ProID  Eintrag
1     1      Test

Vielen Dank
Tina

  1. hallo,

    wollte euch folgendes Fragen ich benötige einen zusätzlichen Zähler in meiner DB. Wie stell ich das ein das er die Zahl pro eintrag um 1 erhöht. Ich weiß ich könnte das auch mit auto_increment machen. Dieser ist allerdings bereits vergeben.
    Die Zeile soll ProID heißen
    Aussehen sollte das ganze so:

    mach doch nach dem einfach ein update mit der letzten id

    was willst du denn damit anstellen?

    1. Das ganze soll als Positions ID diehnen.
      Geht es nicht irgendwie über eine ZählerVariable das sich der Wert pro EIntrag erhöt wenn ja wie :O)???
      Gruss
      Tina

      1. das hattest du gestern schon gefragt !
        hatte das nicht geklappt.

        glaub mir ich habe das schon gemacht.

        was du brauchst ist:

        1. eine spalte ID mit autoincement und primary key
        2. eine spalte sort

        wenn du ein INSERT machst musst du direkt danach eine UPDATE von deiner tabelle machen:

        //ORDER
        $last_insert_id=mysql_insert_id();

        //UPDATE ORDER
        $q="UPDATE table SET sort='$last_insert_id' WHERE id='$last_insert_id' ";
        mysql_query($q);

        jetzt hast du einen eintrag mit ZB einer id = 5 und dein sort ist auch = 5

        damit ist gewährleistet das der wert für sort nur einmal vorkommt.

        später wenn du deine ordungungs funktion machst tauscht du einfach die beiden benötigten sort werte aus.

        das sind später 2 UPDATES

        1. Ja doch der Vorschlag ist super aber es muss doch ne einfache Möglichkeit geben ($i++) das ne Variable hochzählt und die passende Zahl in die Datenbank eingetragen wird.
          Oder?
          Tina

          1. Ja doch der Vorschlag ist super aber es muss doch ne einfache Möglichkeit geben ($i++) das ne Variable hochzählt und die passende Zahl in die Datenbank eingetragen wird.
            Oder?

            Nein , das ist  halt so , und schwer kompliziert ist das doch nicht.

            scheib dir doch einfach ne funktion die das für dich erledigt

            function sort($table)
            {
            $last_insert_id=mysql_insert_id();

            $q="UPDATE $table SET sort='$last_insert_id' WHERE id='$last_insert_id' ";
            mysql_query($q);
            }

            dann brauchst du nur noch das nach deinem insert

            sort("tabelle");

          2. Hi,

            Oder?

            du könntest natürlich, wenn ein eintrag gelöscht wird was dich ja scheinabr davon abhält diese einfache lösung zu wählen nach dem löschen des eintrages sowas hier machen:

              
            $sql = "SELECT id FROM tabelle ORDER BY sort";  
            $erg = mysql_query($sql);  
            $zaehler = 1;  
            while($datensatz = mysql_fetch_array($erg))  
            {  
              $datensatz_id = $datensatz['id'];  
              $sql = "UPDATE tabelle SET sort='$zaehler' WHERE id='$datensatz_id'";  
              mysql_query($sql);  
              $zaehler++;  
            }  
            
            

            kann natürlich auch nach dem hinzufügen eines neuen Datensatzes durchgeführt werden. sonst dürfte alles klar sein. evt. zum schluss noch ein:

              
            $sql = "ALTER TABLE tabelle AUTO_INCREMENT=0";  
            mysql_query($sql);  
            
            

            dadurch wird der autoincrement wert runtergesetzt, wodurch eine halbwegs fortlaufende nummer gewährleistet werden kann. ist aber nicht empfehlenswert.

  2. hi,

    wollte euch folgendes Fragen ich benötige einen zusätzlichen Zähler in meiner DB. Wie stell ich das ein das er die Zahl pro eintrag um 1 erhöht.

    das ist doch thematisch wohl immer noch das gleiche problem wie in https://forum.selfhtml.org/?t=111665&m=703725?

    also bleibe bitte in deinem thread, und vermeide doppelpostings.
    </faq/#Q-11>

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }