if abfragen, wiederholt sich

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

  • if abfragen, wiederholt sich

    folgender script

    PHP-Code:
    while($row mysql_fetch_array($ergebnis)){
    If (
    $row[position] == 1)
    {
    echo 
    "1 $row[name]";
    }else{
    print 
    "1 --Leer--";
    }
    If (
    $row[position] == 2)
    {
    echo 
    "2 $row[name]";
    }else{
    print 
    "2 --Leer--";
    }
    If (
    $row[position] == 3)
    {
    echo 
    "3 $row[name]";
    }else{
    print 
    "3 --Leer--";
    }
    .... 
    So sieht das dann aus:

    1 --Leer--2 --Leer--3 Nemesis4 --Leer--5 --Leer--6 --Leer--1 --Leer--2 --Leer--3 --Leer--4 krieg5 --Leer--6 --Leer--1 --Leer--2 --Leer--3 --Leer--4 --Leer--5 test6 --Leer--1 --Leer--2 --Leer--3 --Leer--4 --Leer--5 --Leer--6 Warface

    so soll es aussehen:
    1 --Leer--2 --Leer--3 Nemesis4 krieg5 test6 Warface

    wie geht das???
    Danke schonmal im vorraus

    T

  • #2
    so vielleicht? ungetestet!

    PHP-Code:
    $i 1;
    while(
    $row mysql_fetch_array($ergebnis)){
      if (
    $row['position'] == $i) {
        echo 
    $i." ".$row['name'];
      } else {
        print 
    $i." --Leer--";
      }
      
    $i++;

    Kommentar


    • #3
      in etwa das gleiche habe ich Master-T schon in diesem Thread hier geschrieben

      http://www.php-resource.de/forum/sho...threadid=19550

      @Master-T

      wieso machst Du jetzt extra einen neuen Thread auf??


      hemfrie

      Kommentar


      • #4
        aber dann gibts ja das problem das nur die angezeigt werden die oben sind oder voll sind also anstatt

        1 -leer-
        2 bla
        3 -leer-
        4 blabla
        5 -leer-
        6 -leer-
        ....

        kommt bei deiner version (hab sie noch nicht getestet, hab es aber schonmal so ähnlich geschrieben):

        1 -leer-
        2 bla
        3 -leer-
        4 blabla

        und der rest fehlt dann, ich mag denn aber auchnoch anzeigen, trotzdem thx

        edit:

        in etwa das gleiche habe ich Master-T schon in diesem Thread hier geschrieben

        http://www.php-resource.de/forum/sh...&threadid=19550

        @Master-T

        wieso machst Du jetzt extra einen neuen Thread auf??


        hemfrie
        ganz einfach weil ich das was du geschrieben hast getestet habe doch das hat nicht gefuntzt aber durch das while hat es meine version richtig angezeigt (thx nochmal), doch dadurch ist halt dieses problem aufgetreten.

        MFG T
        Zuletzt geändert von Master-T; 03.05.2003, 19:55.

        Kommentar


        • #5
          Hmm, aber du weisst ja nach der while-Schleife wie viele Ausgegeben wurden ($i) ... wenn man dann noch weiss wieviel insgesamt ausgegeben werden soll ist das ja kein Problem ...

          PHP-Code:
          $entrys 6//so wie in deinem beispiel
          for ($j $ij<=$entrys$i++) {
              echo 
          $j." --leer--";

          Kommentar


          • #6
            @Master-T

            nur mal so ein Tip. Wenn jetzt ein weiteres Problem durch das Skript von BlobBanana auftreten sollte, dann poste das besser hier und mach nicht wieder einen neuen Thread auf.


            hemfrie

            Kommentar


            • #7
              np ich befolge deinen rat, also ich hab das jetzt mal so geschrieben (das wird jetzt wohl zum totlachen aussehen weil ich in meinen leben noch die davor die for schleife benutzt habe und die while erst seit 2 tagen kann).

              PHP-Code:
              $i 1;
              $entrys 6;
              for (
              $j $i$j<=$entrys$i++) {
                  echo 
              $j." --leer--";
              }
              while(
              $row mysql_fetch_array($ergebnis)){
                if (
              $row['position'] == $i) {
                  echo 
              $i." ".$row['name'];
                } else {
                  print 
              $i." --Leer--";
                }

              so das ergebnis ist ein speedtester (natürlich ungewollt), aber damit kann ich nichts anfangen

              plz help nochmal

              MFG T

              Kommentar


              • #8
                lol

                schonmal andersrum probiert?

                allerdings in der for-schleife hatte ich nen fehler ...

                PHP-Code:
                $i 1;
                while(
                $row mysql_fetch_array($ergebnis)){
                  if (
                $row['position'] == $i) {
                    echo 
                $i." ".$row['name'];
                  } else {
                    print 
                $i." --Leer--";
                  }
                   
                $i++; //wo ist das hin?
                }
                $entrys 6;
                for (
                $j $i$j<=$entrys$j++) {
                    echo 
                $j." --leer--";

                EDIT:

                bin mit dem quoten durcheinander gekommen

                Zuletzt geändert von BlobBanana; 03.05.2003, 20:51.

                Kommentar


                • #9
                  ok jetzt kommt aber noch ein fehler (ich weiß ich weiß was kommt wohl als nächstes, jetzt fragt er sicher gleich wie ein leerzeichen geht usw. )
                  aber ich bin halt noch am lernen (ist man das nicht immer )

                  jetzt werden die wo schon gefüllt sind auch als --leer-- angezeigt, also sind jetzt alle leer, wie krieg ich jetzt die wo leer sind wieder voll???

                  PS: noch ein fettes THX an dich BlobBanana


                  MFG T

                  Kommentar


                  • #10
                    Poste mal die Ausgabe ... ich weiss gerade nicht so recht wie du das meinst ...

                    Kommentar


                    • #11
                      1 --Leer--2 --Leer--3 --Leer--4 --Leer--5 --leer--6 --leer--7 --leer--8 --leer--9 --leer--10 --leer--11 --leer--12 --leer--13 --leer--14 --leer--15 --leer--16 --leer--17 --leer--18 --leer--

                      obwohl 3, 4, 5, 6 voll sind (sollen auch mit name und position angezeigt werden).


                      MFG T

                      Kommentar


                      • #12
                        hast du auch das $i++; in der while-Schleife ... ?

                        Wenn du 18 Ausgaben hast ... hast du dann die Variable $entry auf 18 gesetzt?
                        Und wieviele Eintraege befinden sich ueberhaupt in der DB?

                        Kommentar


                        • #13
                          Ich hab das genau so geschrieben wie du es gepostet hast, also:

                          PHP-Code:
                          $i 1;
                          $entrys 6;
                          for (
                          $j $i$j<=$entrys$i++) {
                              echo 
                          $j." --leer--";
                          }
                          while(
                          $row mysql_fetch_array($ergebnis)){
                            if (
                          $row['position'] == $i) {
                              echo 
                          $i." ".$row['name'];
                            } else {
                              print 
                          $i." --Leer--";
                            }

                          in der datenbank ist auf position 3, 4, 5, 6 etwas, aber es wird nicht angezeigt.

                          Kommentar


                          • #14
                            Aehh ... ich hatte doch gepostet das das $i++ fehlt ... und das die Reihenfolge verkehrt ist.... erst die while schleife und DANN die for-schleife ...

                            Das hier steht weiter oben auch:

                            PHP-Code:
                            $i 1;
                            while(
                            $row mysql_fetch_array($ergebnis)){
                              if (
                            $row['position'] == $i) {
                                echo 
                            $i." ".$row['name'];
                              } else {
                                print 
                            $i." --Leer--";
                              }
                               
                            $i++; 
                            }

                            // und jetzt die for-schleife
                            $entrys 6;
                            for (
                            $j $i$j<=$entrys$j++) {
                                echo 
                            $j." --leer--";

                            Kommentar

                            Lädt...
                            X