while

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

  • while

    hi ihr,
    also ich habe eine while-schleife in der auch eine weitere while-schleife enthalten ist. wenn ich aber die innere while schleife abbreche, gibt herr php sie beim nächsten durchlauf nicht weiter aus sondern lässt sie einfach aus wie kann ich das machen das er sie weiter ausgibt?

  • #2
    poste bidde nen bissel quellcode ....

    vor allem wuerd ich gern die bedingung fuer die inner whileschleife sehen ....

    greetz
    iglo


    p.s.: ich denke die bedingung der inneren whileschleife ist beim zweiten durchlauf nicht erfuellt ....

    Kommentar


    • #3
      PHP-Code:
      $i=1;

      while(
      $bereich=mysql_fetch_array($result1)){

      echo 
      $bereich['bereich_titel'].'<br>';

        while(
      $themen=mysql_fetch_array($result2)){

          if(
      $i==$themen['forum_bereich_id']){   
            echo 
      $themen['forum_name'].'<br>';
          }else{
            break;
          }
        }

      $i++;


      Kommentar


      • #4
        also ich kann jetzt auf anhieb keinen fehler entdecken, sieht für mich korrekt aus.

        was liefert denn $themen['forum_bereich_id'] für werte?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          oke, hab's hingekriegt, hab die 2. schlaufe durch ne do-while schleife ersetzt:

          PHP-Code:
          while($bereich=mysql_fetch_array($result1)){

          echo 
          $bereich['bereich_titel'].'<br>';

              do {
              if(
          $i==$themen['forum_bereich_id']){   
                echo 
          $themen['forum_name'].'<br>';
              }else{
                break;
              }
            } while(
          $themen=mysql_fetch_array($result2));

          $i++;


          Kommentar


          • #6
            jetzt hab ich ein anderes problem:
            wenn es nun 3 bereiche gibt, gibt er mir erst alle 3 bereiche aus und dann auch nurnoch die themen vom 3. bereich, aber die themen vom vorherigen bereich werden nichtmehr ausgegeben

            Kommentar


            • #7
              $i++

              Ich denke das es mit dem $i zusammenhängt. Welchen Startwert hat $i??
              mein vorschlag:
              PHP-Code:
              for($i=0;$i mysql_num_rows($result1);$i++){
              $bereich=mysql_fetch_array($result1)
              echo 
              $bereich['bereich_titel'].'<br>';

                  do {
                  if(
              $bereich['bereich_id']==$themen['forum_bereich_id']){   
                    echo 
              $themen['forum_name'].'<br>';
                  }else{
                    break;
                  }
                } while(
              $themen=mysql_fetch_array($result2));


              Ist erstens etwas "eleganter" gelöst. Ausserdem gibt er dir dann alle Themen aus wenn Themen_bereichid == Bereich_id. Ich denke das wolltest Du auch erreichen.

              Ich hoffe, ich hab Dein Problem richtig erkannt und konnte helfen.

              mfg
              [font=tahoma]
              Agentursoftware
              Zend Framework Resource
              FM4 Sammelalbum


              "The most important part of the work is the beginning" - Plato
              "..so dance while you still have feet and smile while you still have teeth.." - Caesars[/font]

              Kommentar


              • #8
                Re: $i++

                for($i=0;$i = mysql_num_rows($result1);$i++){

                hier müsste man imho $i <= mysqL_num_rows verwenden, oder aber $i=1 als startwert verwenden.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Sorry


                  Danke für das ausbessern.
                  [font=tahoma]
                  Agentursoftware
                  Zend Framework Resource
                  FM4 Sammelalbum


                  "The most important part of the work is the beginning" - Plato
                  "..so dance while you still have feet and smile while you still have teeth.." - Caesars[/font]

                  Kommentar


                  • #10
                    ne, kommt das gleiche raus wie vorher
                    $i hatte bei mir den startwert 1

                    Kommentar


                    • #11
                      so wie ich das sehe, willst du doch sowieso alle bereiche ausgeben, warum abeitest du dann nicht GROUP BY auf der zweiten tabelle?
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        die idee ist gut, nur wie setze ich das am besten um?

                        Kommentar


                        • #13
                          hm, group by ist vielleicht doch nicht so ideal.


                          mein vorschlag wäre:

                          zuerst die beitrags-kategorien aus der ersten tabelle auslesen und in einem array zwischenspeichern.


                          dann die query auf die zweite tabelle machen und dabei nach beitrags-id sortieren lassen.

                          diese dann in einer schleife nacheinander ausgeben lassen, und zuvor abprüfen, ob bei der id ein gruppenwechsel stattgefunden hat; wenn ja, die kategorie aus dem array ausgeben lassen.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            es hat schon geklappt als ich die zweite tabelle nach den id's ordnen lassen hab
                            wenn das jetzt später aus irgendwelchen grünen nicht klappt weiß ich was ich versuchen kann, danke für deine hile

                            Kommentar

                            Lädt...
                            X