[Variablen] Globale Variablen in Schleife

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

  • [Variablen] Globale Variablen in Schleife

    Hallo,

    ich erzeuge in der untenstehenden Schleife Variablen var[x],
    in meinem Beispiel fünf Stück. Leider ist diese Variable nach
    der Schleife nicht mehr gültig. Wie kann ich es erreichen, dass die
    Variablen auch außerhalb der Schleife bekannt bleiben?
    Danke schonmal für eure Hilfe.

    Hier der Code:
    PHP-Code:
     for ($j$j $num$j++)
            {
                     
    $row=pg_fetch_array($result);
                     echo 
    "<tr bgcolor=#8080D0>";
                     for (
    $k=0;$k<$anz;$k++)
                     {      
    // nowrap = kein zeilenumbruch
                         
    $fn=pg_fieldname($result,$k);
                         echo 
    " <td nowrap width='$breit'>
                      <font size='3'> 
    $row[$fn] </font></td>";
                         
    $var[$x]=$row[$fn];
                            echo 
    $var[$x];
                     }
                     echo 
    "</tr>"
    EDIT:
    PHP-Tags sponsored by asp2php. Bitte zukünftig selbst dafür sorgen
    Zuletzt geändert von asp2php; 13.10.2004, 13:08.

  • #2
    du mußt vor der Schleife die Array-Variable deklarieren. Außerdem $x ändert sich nicht in der Schleife, was zur Folge hat, daß jedes Mal die Var überschrieben wird.

    Kommentar


    • #3
      Aus welchem Grunde sollte die Variable nicht ausserhalb der Schleife existieren ... PHP kennt keinen Scopes in diesem Sinne ... wo wird $x definiert ... wo inkrementiert ... ?!
      carpe noctem

      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

      Kommentar


      • #4
        Ich hatte mich verschrieben

        die Variable heißt :

        $var[$k]=$row[$fn];
        echo $var[$k];

        Definiert wird sie in der Schleife
        Ein echo außerhalb der Schleife liefert kein Ergebnis!

        Kommentar


        • #5
          Probier' mal ein print_r($var) ausserhalb der Schleife ... der Zähler $k wird ... um die Abbruchbedingung zu erreichen natürlich Inkrementiert ... !
          carpe noctem

          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

          Kommentar


          • #6
            Original geschrieben von felix007
            Definiert wird sie in der Schleife
            Ein echo außerhalb der Schleife liefert kein Ergebnis!
            und auch deklariert? zeige dein echo außerhalb, denk bitte daran daß du ein Array hast!

            Kommentar


            • #7
              @asp: Wir reden hier über PHP ... da gibt's solche Feinheiten nicht ... leider ... !
              carpe noctem

              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

              Kommentar


              • #8
                Danke an alle.

                Der Tipp mit print_r($var)
                hat funktioniert.

                Kommentar


                • #9
                  Original geschrieben von goth
                  @asp: Wir reden hier über PHP ... da gibt's solche Feinheiten nicht ... leider ... !
                  Oh, ich habe aber mal die Erfahrung gemacht, daß es manchmal zu unerklärlichen Ergebnissen kommt, wenn man vorher nicht $var = array(); deklariert, wenn man explizit den Index beim Belegen angibt, mit $var[] = ... jedoch überhaupt kein Problem ...

                  Kommentar


                  • #10
                    Das Vorgehen ist ja auch korrekt und Empfehlenswert, da somit auch keine Warnings auf weniger Fehlertoleranten Systemen auftreten.
                    carpe noctem

                    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                    Kommentar


                    • #11
                      [Variablen] Globale Variablen in Schleife

                      Hallo,

                      ich habe in der Schleife unten Variablen $var angelegt.
                      Bei der Ausgabe erhalte ich mehrere Datensätze.
                      Leider wird bei der Schleife das $var immer nach jedem Schleifendurchlauf überschrieben.
                      Somit kann ich immer nur den letzten Datensatz benutzen, dann
                      da sind dann in den Variablen die Werte drin.
                      Wie kann ich das verhindern?
                      Ich bräuchte ein Codebeispiel. Kann man die Variablen nicht als gloabl definieren?

                      Vielen Dank für eure Tipps und Hilfe


                      PHP-Code:
                              for ($j$j $num$j++)
                              {
                                       
                      $row=pg_fetch_array($result);
                                       echo 
                      "<tr bgcolor=#8080D0>";
                                       for (
                      $k=0;$k<$anz;$k++)
                                       {      
                      // nowrap = kein zeilenumbruch
                                           
                      $fn=pg_fieldname($result,$k);
                                           echo 
                      " <td nowrap width='$breit'><font size='3'> $row[$fn] </font></td>";
                                           
                      $var[$k]=$row[$fn];
                                       }
                                       echo 
                      "</tr>";

                              }


                      echo 
                      "Ausgabe der Variablen:";
                      echo 
                      "<br>";
                      echo 
                      $var[0];
                      echo 
                      $var[1];
                      echo 
                      $var[2]; 

                      Kommentar


                      • #12
                        du kannst definieren was du willst, so wie es mit explizite Indexzuweisung da steht, wird $var auf jeden Fall überschrieben, wenn die innere Schleife sich initialisiert. Überdenke nochmals dein Konzept.
                        OffTopic:
                        Hm... kommt mir bekannt vor ... hab gestern sowas schon mal gesehen ... begebe mich mal auf die Suche ...
                        EDIT:
                        gefunden warum machst du einen neuen Thread auf bitte zukünftig unterlassen. ** zusammenführen **
                        Zuletzt geändert von asp2php; 14.10.2004, 10:13.

                        Kommentar


                        • #13
                          gestern hatte ich nur das echo Problem
                          Ich brauche den Code wie ich das mache, dass die Variablen
                          bei jedem Schleifendurchlauf angelegt werden und nicht überschrieben.
                          Leider habe ich keine Ahnung wie ich das mache. Das ich das überdenken muß hilft mir leider nicht wirklich.

                          Kommentar


                          • #14
                            Original geschrieben von felix007
                            gestern hatte ich nur das echo Problem
                            heute anscheinend auch
                            Ich brauche den Code wie ich das mache,
                            was zahlst du?
                            dass die Variablen
                            bei jedem Schleifendurchlauf angelegt werden und nicht überschrieben.
                            Leider habe ich keine Ahnung wie ich das mache.
                            du hast verschachtelte Schleife, Tipp: 2-dim Array nehmen.
                            Das ich das überdenken muß hilft mir leider nicht wirklich.
                            wenn du schon von vorne herein blockst, dann kann's nichts werden. Ändere deine Einstellung, oder das ist das letzte Mal, dass ich dir helfe.

                            Kommentar


                            • #15
                              Original geschrieben von asp2php
                              heute anscheinend auch

                              was zahlst du?
                              Bin leider ein armer Student

                              du hast verschachtelte Schleife, Tipp: 2-dim Array nehmen.

                              wenn du schon von vorne herein blockst, dann kann's nichts werden. Ändere deine Einstellung, oder das ist das letzte Mal, dass ich dir helfe.
                              Ich glaube wir haben uns falsch verstanden. Ich hab mir schon das Hirn zermatert, bloß bin ich zu blöd und komm einfach net drauf

                              Außerdem wäre es schade, wenn du mir net mehr hilfst, denn du hast mir hier schon gute Tipps zu anderen Problemen gegeben

                              Kommentar

                              Lädt...
                              X