php zählt variable nicht weiter...

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

  • php zählt variable nicht weiter...

    Mojen, mojen!

    Ich will eine fortlaufende nummer erzeugen und damit alle meine DS updaten. Aber irgendwie haben alle DS die gleiche $nr.

    Wat paßt da nich??

    $anzahl = 100;
    $i = 1;
    $nr = 3821;
    while ($i <= $anzahl) {
    $sqlnr = mysql_query("UPDATE tabelle SET NRitc = '$nr'");
    $sqlnr2 = mysql_query($sqlnr);
    $i++;
    $nr++;
    }
    $PHP resource 4ever$

  • #2
    ist doch klar,

    $i entspricht doch bei jedem aufruf deines script der zahl "1"

    versuchs mal so:

    $anzahl = 100;
    $i = md5 (uniqid (rand()));
    $nr = 3821;
    while ($i <= $anzahl) {
    $sqlnr = mysql_query("UPDATE tabelle SET NRitc = '$nr'");
    $sqlnr2 = mysql_query($sqlnr);
    $i++;
    $nr++;
    }

    damit sollte bei jedem aufruf des scripts eine neue zahl erzeugt werden, die also nicht immer gleich ist.

    hoffe dir geholfen zu haben

    Kommentar


    • #3
      warum entspricht $i immer 1??
      er soll doch solange in der while-schleife bleiben bis $i gleich $anzahl ist. und in der while zähle ich $i ja immer um eins weiter.
      versteh ich nicht was du mit $i = md5 (uniqid (rand()));
      meinst.
      $PHP resource 4ever$

      Kommentar


      • #4
        Du willst eine Nummer in der DB haben die immer verschieden ist

        also generier dir diese doch mit hilfe von md5 und rand()


        $nr = md5 (uniqid (rand()));

        Kommentar


        • #5
          nein. das hast du falsch verstanden.
          ich will eine fortlaufende nummer für jeden meiner DS haben.
          ich beginne bei 3821 und php soll immer eins weiterzählen. deswegen $nr++; das $i zähle ich ebenfalls bis 100 weiter damit php weiß wie oft es die while-schleife machen soll.
          $PHP resource 4ever$

          Kommentar


          • #6
            achso,

            sorry
            dann kann ich dir leider auch net weiterhelfen.

            Kommentar


            • #7
              macht nix.
              ich gebe die hoffnung nie auf...
              $PHP resource 4ever$

              Kommentar


              • #8
                stelle doch einfach die sql_spalte auf auto_increment, und beginne bei 3821 ...

                oder hab ich dich auch falsch verstanden ( wie immer )
                h.a.n.d.
                Schmalle

                http://impressed.by
                http://blog.schmalenberger.it



                Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                ... nur ohne :-)

                Kommentar


                • #9
                  SQL-Befehl :
                  ALTER TABLE xxxxx.tabellenname CHANGE NRitc NRitc INT(4) DEFAULT '3821' NOT NULL AUTO_INCREMENT

                  MySQL meldet:
                  Incorrect table definition; There can only be one auto column and it must be defined as a key

                  => ich hab da schon ein Feld ID das immer um eins weiterzählt; beginnend bei 1 => brauch das aber unbedingt so und das mit 3821 fortlaufend in einer extraspalte auch.
                  aber ich check echt nicht, was da beim php-script nicht paßt!?!?!?
                  $PHP resource 4ever$

                  Kommentar


                  • #10
                    Du kannst nur einen Autoincrement-Wert pro table haben!

                    Wonach sortierst du denn die Spalten ??? Nach AutoID, oder nach einem anderen Wert??

                    Dann könntest du per Skript anhand einer Sortierung dieser Werte eine zusätzliche Spalte mit deiner zusätzlichen Formatierungen machen

                    gruss

                    Kommentar


                    • #11
                      nee. viel zu kompliziert.

                      kannst du beim script irgendeinen fehler erkennen??

                      $anzahl = 100;
                      $i = 1;
                      $nr = 3821;
                      while ($i <= $anzahl) {
                      $sqlnr = mysql_query("UPDATE tabelle SET NRitc = '$nr'");
                      $sqlnr2 = mysql_query($sqlnr);
                      $i++;
                      $nr++;
                      }


                      die while-schleife soll php solange machen, bis $i 100 ist. und in der while zähle ich die beiden variablen $i und $nr immer um eines rauf.
                      warum funtzt das nicht?? => die syntax ist doch korrekt!
                      $PHP resource 4ever$

                      Kommentar


                      • #12
                        Dein Skript erzeugt keinen Fehler. die Ausgabe sieht so aus:
                        Code:
                        3822||100||2
                        3823||100||3
                        3824||100||4
                        3825||100||5
                        3826||100||6
                        3827||100||7
                        3828||100||8
                        3829||100||9
                        mit der Reihenfolge:
                        nr||anzahl||i

                        soll das so sein ??

                        gruss

                        Kommentar


                        • #13
                          kann es vielleicht sein, dass es am sql befehl scheitert
                          $sqlnr = mysql_query("UPDATE tabelle SET NRitc = '$nr'");
                          weil ja sql beim statement UPDATE auf einen schlag alle DS anpaßt. in der spalte NRitc hab ich nämlch überall 3920 stehen.
                          $PHP resource 4ever$

                          Kommentar


                          • #14
                            Jepp, sorry ist mir nicht aufgefallen.

                            Wenn du einfach nur Update SET abc=1 setzt er bei allen Einträgen der Tabelle das Feld abc auf 1

                            gruss

                            Kommentar


                            • #15
                              und wie kann ich das verhindern??
                              $PHP resource 4ever$

                              Kommentar

                              Lädt...
                              X