while-Schleife in Array?

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

  • while-Schleife in Array?

    Ich hab da ein Problem, das ich leider nicht alleine lösen konnte, deshalb meine Frage: Kann ich innerhalb eines Arrays
    PHP-Code:
    array(); 
    eine while-Schleife ausführen? Wenn ja, wie mach ich das? Ich bekomms irgendwie nicht gebacken. Sollte es nicht gehen, bitte ich um andere Vorschläge, da ich mir nicht mehr zu helfen weiss.

    Im Voraus besten Dank.
    Das Genie überblickt das Chaos!

    Wer Rechtschreibfehler findet, darf sie behalten!

  • #2
    was genau willst du denn? deine bescheibung ist ein wenig ..... naja ... verwirrend.

    aber im grunde kannst du auch array() in einer schleife nutzen. warum denn nicht?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      die antwort lautet: nein!

      beschreib doch dein problem ein wenig näher, geht sicherlich auch anders

      Original geschrieben von Abraxax

      aber im grunde kannst du auch array() in einer schleife nutzen. warum denn nicht?
      er meinte schleife in array
      Dieses Schreiben wurde automatisch erstellt und ist ohne Unterschrift gültig.

      Kommentar


      • #4
        Original geschrieben von TheUser
        er meinte schleife in array
        er kann aber auch meinen, dass er mit hilfe einer schleife weitere indizies anlegen will in einem vorhandenem array...

        aber das soll er ruhig mal genau erklären.....
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          ich denk mal er meint sowas

          PHP-Code:
          $array = array(
          while() {
          }
          ); 
          dann nimm halt
          PHP-Code:
          $array[] = 0;
          $i 1;
          while(
          $i 100) {
            
          $array[] = $i;
            
          $i++;

          Dieses Schreiben wurde automatisch erstellt und ist ohne Unterschrift gültig.

          Kommentar


          • #6
            Original geschrieben von TheUser
            ich denk mal er meint sowas
            k.a. aber meine glaskugel ist in der reinigung... ;-)
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Also, ich hab hier das Array, welches ich für eine dynamische Navigation benötige. Dieses Array wollte ich jetzt dynamisch füllen. Die Daten dafür befinden sich in einer MySQL-Tabelle. Ich dachte mir ich mach das über eine while-Schleife, habs aber irgendwie nicht hinbekommen. Kann mir jemand dabei helfen, unten stehendes Array dynamisch zu füllen?

              PHP-Code:
              $menuStruct=array(
              "Ueberschrift"=>array("root"=>$siteRoot."index.php""Seite2"=>$siteRoot."seite2.php")
              ); 
              Das Genie überblickt das Chaos!

              Wer Rechtschreibfehler findet, darf sie behalten!

              Kommentar


              • #8
                Versuch mal hier

                Kommentar


                • #9
                  Das ist ganz einfach. Und zwar folgendermaßen:

                  PHP-Code:
                  $array = array(); // Hierdurch wird ein Array namens $array ohne Inhalt initialisiert

                  while($row mysql_fetch_array($mysqlausgabe_variable))
                  {
                    
                  array_push($array$row['value']); // Mit diesem Befehl wird an das Array $array der Wert aus der MySQL-Tabelle $row['value'] angehängt

                  Für Deinen speziellen Fall, wo Du den jeweiligen Array-Eintrag nicht per Index-Zahl sondern per Name ansprichst müsste auch das funktionieren.

                  PHP-Code:
                  $array = array(); // Hierdurch wird ein Array namens $array ohne Inhalt initialisiert

                  while($row mysql_fetch_array($mysqlausgabe_variable))
                  {
                    
                  array_push($array$row['name']=>$row['value']); // Mit diesem Befehl wird an das Array $array der Wert aus der MySQL-Tabelle $row['value'] angehängt

                  Ich hoffe ich konnte helfen.

                  Gruß, Integer
                  Zuletzt geändert von Integer; 14.04.2004, 15:37.
                  www.powerworxx.de - computer, netzwerk, webdesign

                  May the source be with you!

                  Kommentar


                  • #10
                    Erst mal besten Dank für die Antworten, ich werd das Ganze jetzt mal ausprobieren.
                    Das Genie überblickt das Chaos!

                    Wer Rechtschreibfehler findet, darf sie behalten!

                    Kommentar


                    • #11
                      Hmm, jetzt bekomm ich folgende Fehlermeldung:

                      Parse error: parse error, unexpected T_DOUBLE_ARROW in i:\apache\htdocs\verzeichnis\test.php on line 11

                      Hier mein Script:

                      PHP-Code:
                      $array = array();
                      $query mysql_query("SELECT * FROM `datenbank` ORDER BY `modell`");
                         while(
                      $row mysql_fetch_array($query))
                            {
                            
                      array_push($array$row['hersteller']=>$row['modell']);
                            } 
                      Kann mir jemand sagen, was ich da jetzt anders gemacht hab als "Integer"?

                      Line 11 ist die Zeilte zwischen den Klammern {}.
                      Das Genie überblickt das Chaos!

                      Wer Rechtschreibfehler findet, darf sie behalten!

                      Kommentar


                      • #12
                        unexpected T_DOUBLE_ARROW

                        der pfeil => stört wohl an dieser stelle.
                        und mir ist ehrlich gesagt auch nicht klar, was der hier soll.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Der Pfeil steht deshalb da, weil er im statischen Code auch dasteht. Wenn mir jemand sagen kann, wie ich das ohne Pfeil hinbekomm, dann kann ich den gerne weglassen.

                          statischer Code:

                          PHP-Code:
                          $menuStruct=array(
                          "Ueberschrift"=>array("root"=>$siteRoot."index.php""Seite2"=>$siteRoot."seite2.php")
                          ); 
                          dynamischer Code:
                          PHP-Code:
                          $array = array();
                          $query mysql_query("SELECT * FROM `datenbank` ORDER BY `modell`");
                             while(
                          $row mysql_fetch_array($query))
                                {
                                
                          array_push($array$row['hersteller']=>$row['modell']);
                                } 
                          Ich glaub ich muss mir was anderes einfallen lassen, ich brings einfach nicht hin. Hat denn noch nie jemand ein ähnliches Script geschrieben?
                          Das Genie überblickt das Chaos!

                          Wer Rechtschreibfehler findet, darf sie behalten!

                          Kommentar


                          • #14
                            Original geschrieben von chefdesigner
                            Der Pfeil steht deshalb da, weil er im statischen Code auch dasteht.
                            umwerfende logik!

                            dass du in deinem statischen code ein array mit dem schlüsselwort array(...) definierst, und im anderen beispiel aber die funktion array_push() benutzt, ist dir aber schon aufgefallen, oder?
                            und bei letzterer ist diese syntax nun mal nicht korrekt.
                            (array_push scheint die vergabe von assoziativen keys überhaupt nicht zu unterstützen, soweit ich das sehe.)

                            Wenn mir jemand sagen kann, wie ich das ohne Pfeil hinbekomm, dann kann ich den gerne weglassen.
                            warum benutzt du denn nicht die einfachste aller schreibweisen,

                            $meinarray["schlüssel"] = "wert";

                            ...?
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Da ich leider immer noch nicht durchblicke, hab ich einfach hier mal den gesamten Code. Der entscheidende Abschnitt ist die Definition des Arrays "$menuStruct". Hier wollte ich über eine while-Schleife meine Datenbankeinträge einbinden. Leider funktionierts nicht.

                              PHP-Code:
                              <?
                              /*
                              die Variable $siteRoot muss angepasst werden, wenn die dateien in einem Unterverzeichnis abgelegt werden. Wenn das Unterverzeichnis z.B. "DIR" heißt, dann muss $siteRoot="/DIR/"; sein
                              */

                              $siteRoot="/";
                              $menuStruct=array(
                              "Home"=>array("root"=>$siteRoot."index.php"),
                              "Über uns"=>array("root"=>$siteRoot."ueberuns.php", "Firma"=>$siteRoot."firma.php", "Beteiligungen"=>$siteRoot."beteiligungen.php"),
                              "Allgemein"=>array("root"=>$siteRoot."allgemein.php", "Irgendwas"=>$siteRoot."irgendwas.php", "Noch mehr"=>$siteRoot."nochmehr.php")
                              );


                              if($PHP_SELF == $menuStruct[0]['root']){
                                foreach($menuStruct as $key=>$value){
                                  if($PHP_SELF == $value['root']){
                                     echo "<div class=\"fstLevelActive\"><a href=".$value['root'].">$key</a></div>\n";
                                  }
                                  else{
                                     echo "<div class=\"fstLevel\"><a href=".$value['root'].">$key</a></div>\n";
                                  }
                                }
                              } else {
                                foreach($menuStruct as $key=>$value){
                                  if($PHP_SELF == $value['root']){
                                     echo "<div class=\"fstLevelActive\"><a href=".$value['root'].">$key</a></div>\n";
                                  }else{
                                     echo "<div class=\"fstLevel\"><a href=".$value['root'].">$key</a></div>\n";
                                  }
                                  foreach($value as $key2=>$value2){
                                    if(array_search($PHP_SELF,$value)){
                                      if($key2 != "root")
                                         if($PHP_SELF == $value2){
                                            echo "<div class=\"secLevelActive\"><a href=".$value2.">$key2</a></div>\n";
                                         }else{
                                            echo "<div class=\"secLevel\"><a href=".$value2.">$key2</a></div>\n";
                                         }
                                    }
                                  }
                                }
                              }
                              ?>
                              Muss irgendwo ein Denkfehler sein, aber ich bekomms einfach nicht hin.
                              Das Genie überblickt das Chaos!

                              Wer Rechtschreibfehler findet, darf sie behalten!

                              Kommentar

                              Lädt...
                              X