Phil: Variablen ausserhalb einer Schleife nutzen?

Hoi!
Ich schreibe und schreibe und schreibe und stoße auf dieses Problem:
Ich habe eine Schleife in PHP und nutze in hr Variablen. Diese Variablen will ich jedoch auch ausserhalb der Schleife nutzen und irgendwie funzt das net, warum net?

if(!$test) {
while($today=mysql_fetch_array($today_select)) {
$neu=$neu+$today[count];
$lastweek=$today[week];
}
$nummer1=mysql_query("DELETE FROM stat_today");
$nummer2=mysql_query("INSERT INTO stat_week (week,count) VALUES ('$lastweek','$neu')");
}

Danke für die Antworten!
http://www.wc24.de.vu (wenn mir einer ne de-Domain schenkt, bin ich ihm dankbar ;)

  1. Hi,

    irgendwie funzt das net,

    http://funzt.net/

    warum net?

    "Nicht". Das Wort heißt "nicht". Am Satzanfang schreibt man groß.

    Hast Du die Variablen außerhalb der Schleife deklariert?

    (wenn mir einer ne de-Domain schenkt, bin ich ihm dankbar ;)

    Na klar. Wenn mir jemand etwas schenkt, das dem Schenker Kosten verursacht, bin ich auch dankbar.

    Cheatah

    1. hmm, ne nicht ausserhalb, weil ich sie ja innerhalb der Schleife das erste Mal nutze...
      Sollte ich dieses tun?

      1. Hi.

        hmm, ne nicht ausserhalb, weil ich sie ja innerhalb der Schleife das erste Mal nutze...
        Sollte ich dieses tun?

        Wäre wohl besser ;-).
        Wenn du eine Variable lokal in einer Funktion benutzen willst und diese außerhalb dieser deklariert ist, hilft außerdem in der Funktion der Befehl 'global $variable_x;'.

        Bye, der danny

        1. Hi,

          Sollte ich dieses tun?
          Wäre wohl besser ;-).

          allerdings :-)

          Das Stichwort lautet "Scope". Eine Variable hat nur Gültigkeit innerhalb des Blocks (Funktion, Schleife...), in dem sie deklariert wird.

          'global $variable_x;'.

          Dies widerspricht einem Grundprinzip der Datenverarbeitung. Man sollte auf sowas verzichten. Variablen werden genau dort deklariert, wo sie gebraucht werden; Funktionen werden sie übergeben; diese geben Werte zurück, anstatt globale Variablen zu verändern. Schleifen sind nur ein lokaler Block und brauchen daher nichts zurückzugeben, dennoch ist auch ihr Scope zu beachten.

          Cheatah

          1. Sorry, aber nu versteh ich nix mehr?!
            Soll ich nu einfach die Variable aussen definieren und dann funzts?
            Oder geht das gar nicht?
            Oder wie muss ich nu(n) vorgehen?

            1. Sorry, aber nu versteh ich nix mehr?!
              Soll ich nu einfach die Variable aussen definieren und dann funzts?
              Oder geht das gar nicht?
              Oder wie muss ich nu(n) vorgehen?

              Wenn die Schleife die Variable(n) ändert dann hast du nach der schleife logischerweisse immer nur den letzen stand der Variable. (aber wie Cheattah schon sagte.. evil)

              Ludwig

              1. Hi,

                Soll ich nu einfach die Variable aussen definieren und dann funzts?

                nein, aber dann funktioniert's.

                Wenn die Schleife die Variable(n) ändert dann hast du nach der schleife logischerweisse immer nur den letzen stand der Variable.

                Dazu sind Schleifen da :-) Wenn die Variable allerdings erst _in_ der Schleife deklariert wurde, existiert sie danach nicht mehr.

                Cheatah