Problem mit Schleifenausgabe...

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

  • Problem mit Schleifenausgabe...

    Hallo zusammen,
    Ich habe ein kleines Problem mit einer Ausgabe bei der while-Schleife.
    In der Datenbank hat eine Spalte die Funktion, zu bestimmen, ob der Eintrag angezeigt werden sol oder nicht. Die Spalte heisst "open". Nun, das funktioniert gut, alle, die open = 1 haben werden angezeigt, die anderen nicht. Wenn jetzt aber zwei Einträge nacheinander auf Off
    eingestellt sind, wird für diese in der Ausgabe einen Umbruch erzeugt!
    Ich versteh einfacht nicht Warum.

    Aussehen tuts dann so:

    -Eintrag 1
    -Eintrag 2
    -Eintrag 3

    -Eintrag 6
    ....


    PHP-Code:
    $sql ="SELECT * FROM menu WHERE open=1 AND mpos='0' ORDER BY cat, no, fot";
    $res mysql_query($sql$db) or die(mysql_error());

    while (
    $myrow mysql_fetch_array($res))                // Loop start

    Kann mir da jemand helfen? Danke
    Figugegu

  • #2
    und wie sieht Deine ausgabe aus?
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Wie ich in meinem ersten Post gezeigt habe. Es wird einfach ein Zeilenumbruch zuviel ausgegebn.

      Beispiel wenn ich Eintrag 4 und 5 auf close habe:
      -Eintrag 1
      -Eintrag 2
      -Eintrag 3

      -Eintrag 6
      ...

      Wenn jetzt aber nur Eintrag 4 auf close ist, geht es:
      -Eintrag 1
      -Eintrag 2
      -Eintrag 3
      -Eintrag 5
      -Eintrag 6
      ...

      Kann mir das jemand erklären??
      THX

      Kommentar


      • #4
        Dein code?
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          Also, mein code sieht so aus:


          PHP-Code:
          $sql ="SELECT * FROM menu WHERE open=1 AND mpos='0' ORDER BY cat, no, fot";
          $res mysql_query($sql$db) or die(mysql_error());
          $cat_old='3000';

          while (
          $myrow mysql_fetch_array($res))        // Loop start
          {
          $catop $myrow['cat'];
          if (
          $catop!=$cat_old)   //wenn neue Kategorie, dann <br> setzen
            
          {
               echo 
          '<br>';
               
          $cat_old=$catop;
            }
          echo 
          $myrow[titel];

          Kommentar


          • #6
            lass dir mal $old_cat und $myeow['cat'] ausgaben und zwar genau do, wo auch dein <br> steht
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              OK, wenn ich dich richtig verstehe, dann so:

              PHP-Code:
              ....
              if (
              $catop!=$cat_old)   //wenn neue Kategorie, dann <br> setzen

                
              {

                   echo 
              '<br>';
                   echo 
              $old_cat;
                   echo 
              $myrow['cat'];

                   
              $cat_old=$catop;

                }
              .... 
              Wenn ich das mache, wird mir die cat-Nummer des ausgeschalteten Eintrages auch angezeigt. Nun versteh ich aber nicht, in der query sage ich ja "... WHERE open=1 ..."!!!Warum werden dann diese trozdem in die Schleife genommen?

              Kommentar


              • #8
                stimmt das ergebnis denn wenn du die abfrage über phpmyadmin absetzt?
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  wie über phpmyadmin? kannst du das näher erklären?

                  danke

                  Kommentar


                  • #10
                    PMA nehmen, auf der karte SQL die query eintragen, absenden, staunen.
                    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


                    • #11
                      phpMyAdmin ist eine php-Application zur Verwaltung von MySQL, wenn du
                      PMA nicht hast, dann eben das nehmen was du immer sonst verwendet
                      (bei mir ist z.B. MySQL Control Center), und setzt mal die Abfrage testweise
                      ab, um zu prüfen, was raus kommt.

                      Kommentar


                      • #12
                        ok, wenn ich dass mache, werden mir wirklich nur die einträge ausgegteben, die offen sind.

                        Aber in der Ausgabe ist dieser "Abstand" wirklich vorhanden...

                        Kommentar

                        Lädt...
                        X