Stahl Florian: Weiterzählen

Hallo an alle,

Habe ein kleines Problem aber ich komm einfach net drauf.

Ich habe eine Variable $nummer. Diese ist in ein Script eingebunden und jedes mal wenn es ausgeführt wird soll die Variable um eine Zahl grösser werden. Habe es so gemacht, aber es wird immer nur 1 angezeigt.

$nummer = 0;
$nummer = $nummer++;

Bitte um Hilfe.

Mit freundlichen Grüssen
------------------------
Stahl Florian
------------------------

--
Das Leben ist hart, aber wir sind härter
  1. Hi Stahl,

    $nummer = 0;

    => Setze $nummer auf 0.

    $nummer = $nummer++;

    => Erhöhe $nummer um 1, also von 0 auf 1.

    Beim nächsten mal durchführen:

    $nummer = 0;

    => Setze $nummer auf 0.

    $nummer = $nummer++;

    => Erhöhe $nummer um 1, also von 0 auf 1.

    usw.

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
    Patch zur Verwendung von PATHINFO in JLog
    Unbrauchbarkeit hat noch nie Menschen von der Nutzung abgehalten - Millionen IE-Nutzer beweisen das. >;-> (Cybaer)
    1. Hallo an alle,

      Ich denke ich habs falsch beschrieben. Stellt euch das so vor:

      Ich fülle ein Formular aus und schicke es ab. Es wird in einer Textdatei gespeichert und wieder ausgelesen.

      Dieser erste ausgelesene Datensatz soll die Ziffer 1 haben. Der nächste die 2. Also immer wenn ich das Formular ausfülle soll automatisch die nächste Zahl vergeben werden und angezeigt. Also durchnummeriert von Einträge z.B.

      Mit freundlichen Grüssen
      ------------------------
      Stahl Florian
      ------------------------

      --
      Das Leben ist hart, aber wir sind härter
      1. Hi Stahl

        Dieser erste ausgelesene Datensatz soll die Ziffer 1 haben. Der nächste die 2. Also immer wenn ich das Formular ausfülle soll automatisch die nächste Zahl vergeben werden und angezeigt. Also durchnummeriert von Einträge z.B.

        Du solltest eine "Schlaufe" verwenden.

        $nummer = 0;

        // $anzahl gibt an wie viel mal die Schlaufe ausgeführt wird

        while ($nummer<$anzahl) {

        // hier kommt der Code um das Formular abzuschicken, usw..

        $nummer++;
        };

        MfG

        splinter

      2. Hallo Florian!

        Dieser erste ausgelesene Datensatz soll die Ziffer 1 haben. Der nächste die 2. Also immer wenn ich das Formular ausfülle soll automatisch die nächste Zahl vergeben werden und angezeigt. Also durchnummeriert von Einträge z.B.

        Du liest _vor_ dem Speichern die Textdatei als Array aus und bestimmst die Länge von diesem. Danach speicherst Du den neuen Wert +1.

        Da Du aber die Werte in der Textdatei immer als Array verarbeiten kannst, wäre es natürlich auch möglich gänzlich auf eine Nummerierung innerhalb der Datei zu verzichten und immer mit den Arraypositionen zu arbeiten. (In Datenbanken macht ein eindeutiger Index aber natürlich auch Sinn)

        Schönen Gruß

        Afra

  2. Hallo Florian!

    Dennis hat Dir ja schon den Fehler in deinem Aufruf beschrieben. Wenn Du aber den berechnten Wert in einer Session speicherst, dann könntest Du bei erneutem Aufruf ($nummer != 0) den Wert nicht mehr neu auf 0 setzen und dagegen den Wert aus der Session nehmen (Oder aus einem Query String, oder oder oder...

    Da wir aber nicht die Anwendung Deiner kleinen Berechnung kennen, ist die Hilfe nun auch etwas dünn.

    Schönen Gruß

    Afra

  3. Hi,

    abgesehen vom Gesagten - diese Anweisung ist doppelt gemoppelt.

    $nummer = $nummer++;

    besagt: $nummer = ($nummer = $nummer + 1);

    freundliche Grüße
    Ingo

    1. Hi,

      abgesehen vom Gesagten - diese Anweisung ist doppelt gemoppelt.

      Überseh ich was?
      Meiner Meinung nach ist das etwas anders:

      $nummer = $nummer++;
      besagt: $nummer = ($nummer = $nummer + 1);

      Das wäre m.E. $nummer = ++$nummer;
      (Deine Klammer entspricht dem Pre-Inkrement)

      $nummer = $nummer++; sagt m.E.:

      $temp = $nummer;
      $nummer = $nummer + 1;
      $nummer = $temp;

      Also erstmal den Wert auslesen, dann erhöhen (Post-Inkrement), dann die Zuweisung durchführen.
      Wobei die letzten beiden Schritte je nach Programmiersprache (bzw. sogar je nach Compiler/Interpreter) auch in umgekehrter Reihenfolge stattfinden können.
      Grundregel:
      Taucht eine Variable mit Post/Pre-In/De-krement-Operator in einem Ausdruck auf, darf sie kein weitere Mal darin auftauchen, da sonst das Verhalten unvorhersehbar wird.

      cu,
      Andreas

      --
      Warum nennt sich Andreas hier MudGuard?
      Schreinerei Waechter
      O o ostern ...
      Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      1. Hi,

        $nummer = $nummer++; sagt m.E.:

        $temp = $nummer;
        $nummer = $nummer + 1;
        $nummer = $temp;

        korrekt. Und da hast Du auch schon den vielleicht relevanten Fehler entdeckt.

        freundliche Grüße
        Ingo