for schleife in While schleife

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

  • for schleife in While schleife

    Hallo zusammen,
    ich habe ein Problem :

    Und zwar möchte ich eine Rangliste mit dem Namen und den Punkten aus einer MySQL Tabelle lesen. Am anfang wird da noch das Tabellen Template festgelegt.

    Mein Problem besteht nun bei den Rängen. Wie kann ich da machen dass beim 1. die Nummer 1 erscheint? Ich kann ja nicht ne for in ner while schleife drin machen..

    Ich hab mir dann folgendes überlegt:
    Wen ich ja die Limite weiss, wieso mach ich dan nicht gerade ne for schleife?! Aber wie funktioniert dann das:
    $top = mysql_fetch_assoc($q)

    Der Code:
    PHP-Code:
    $table '
    <table style="border:1px solid #000000;" cellspacing="3" cellpadding="2">
      <tr>
        <td style="border:1px solid #000000;">{RANG}</td>
        <td style="border:1px solid #000000;">{USERNAME}</td>
      </tr>
    </table>'
    ;

    $dat split('<tr>',$table); 
    $dat split('</tr>',$dat['1']); 

    $q mysql_query("SELECT * FROM `ES_users` ORDER BY punkte DESC LIMIT ".$e['topx']);
    $tab '';
    while (
    $top mysql_fetch_assoc($q))
    {
        
    $d str_replace('{RANG}''Rang'$dat[0]);
        
    $d str_replace('{USERNAME}'$top['username'], $d);
        
        
    $tab .= '<tr>
        '
    .$d.'
        </tr>'
    ;
    }
    echo 
    '<table style="border:1px solid #000000;" cellspacing="3" cellpadding="2">'.$tab.'</table>'
    Ich hoffe jemand kann mir helfen..
    Danke
    Bücher für Programmierer

  • #2
    Code:
    i = 0
    while(...) {
       print i
       ...
       i = i + 1
    }

    Kommentar


    • #3
      Hmm.. funktioniert zwar aber ich checks nicht wiso.. o.O
      Habs jetzt so:
      PHP-Code:
      $i 0;
      while (
      $top mysql_fetch_assoc($q))
      {
          
      $d str_replace('{RANG}'$i+1$dat[0]);
          
      $d str_replace('{USERNAME}'$top['username'], $d);
          
          
      $i $i+1;
          
          
      $tab .= '<tr>
          '
      .$d.'
          </tr>'
      ;

      In diesem fall müsste ja das $i = $i+1; das $i = 0; 'überschreiben'
      Bücher für Programmierer

      Kommentar


      • #4
        tut es und soll es ja auch. Eine for Schleife würde nichts anderes tun.
        Für jeden Schleifendurchgang wird das $i um eins erhöht. Der Inhalt der Schleife benutzt aber immer das aktuelle $i, so wie es sein soll...

        edit:
        hier nochmal ein Code einer for-Schleife, die genau das gleiche macht:

        PHP-Code:
        for ($i 1; ($top mysql_fetch_assoc($q)) ; $i++) {
        ...

        Zuletzt geändert von ZombieChe; 15.07.2007, 16:21.

        Kommentar

        Lädt...
        X