[Funktion] Sortierung einer Tabelle

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

  • [Funktion] Sortierung einer Tabelle

    Hey,
    ich hab ein ganz kleines Script gemacht welches eig nur eine Userliste anzeigen sollte (die Sortiert nach Punktzahl der User ist).

    Dabei sollte der User mit dem meisten Punkten ganz oben auf dem ersten Platz stehen und noch 9 weitere darunter...also insgesamt 10 User.

    Die Php datei heißt deswgen "Top 10 der User"

    Nun zum Fehler: Er gibt zwar alles aus, auch ohne einen Fehler wiederzugeben, aber die Liste wird nicht Sortiert. Si estehen durcheinander da.

    Wo ist der Sortierungsfehler?

    PHP-Code:
    <?php require_once('Connections/Mog.php'); ?>
    <?php
    $maxRows_topwriter 
    10;
    $pageNum_topwriter 0;
    if (isset(
    $_GET['pageNum_topwriter'])) {
      
    $pageNum_topwriter $_GET['pageNum_topwriter'];
    }
    $startRow_topwriter $pageNum_topwriter $maxRows_topwriter;

    //Hier muss der Fehler sein, oder?

    mysql_select_db($database_Mog$Mog);
    $query_topwriter "SELECT * FROM punkte ORDER BY gesamt DESC";
    $query_limit_topwriter sprintf("%s LIMIT %d, %d"$query_topwriter$startRow_topwriter$maxRows_topwriter);
    $topwriter mysql_query($query_limit_topwriter$Mog) or die(mysql_error());
    $row_topwriter mysql_fetch_assoc($topwriter);

    if (isset(
    $_GET['totalRows_topwriter'])) {
      
    $totalRows_topwriter $_GET['totalRows_topwriter'];
    } else {
      
    $all_topwriter mysql_query($query_topwriter);
      
    $totalRows_topwriter mysql_num_rows($all_topwriter);
    }
    $totalPages_topwriter ceil($totalRows_topwriter/$maxRows_topwriter)-1;
    ?>
    <style type="text/css">
    <!--
    .top10 {
        color: #FFFFFF;
        font-weight: bold;
    }
    -->
    </style>
    <table width="650" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td bgcolor="#999999"><span class="top10">Top 10 der Writer </span></td>
      </tr>
    </table>
    <br>
    <table width="650" border="0" cellspacing="0" cellpadding="0">
      <tr bgcolor="#CCCCCC">
        <td><strong>Rang:</strong></td>
        <td><strong>Writer:</strong></td>
        <td bgcolor="#CCCCCC"><strong>Punkte:</strong></td>
      </tr>
      <?php do { ?>
      <tr bgcolor="#E1E1E1">
        <td width="43"><ol>
            <li></li>
        </ol></td>
        <td width="262" bgcolor="#E1E1E1"><a href="http://www.meinepage.de/index.php?kad=writerpage&writer=<?php echo $row_topwriter['userid']; ?>"><?php echo $row_topwriter['userid']; ?></a></td>
        <td width="345"><?php echo $row_topwriter['gesamt']; ?></td>
      </tr>
      <?php } while ($row_topwriter mysql_fetch_assoc($topwriter)); ?>
    </table>
    <p>&nbsp;</p>
    <?php
    mysql_free_result
    ($topwriter);
    ?>

  • #2
    Also dein Code ist wirklich übelst. Dass es dir da nicht gelingt vernünftig zu debuggen, kann ich verstehn.

    Mein Code macht fast das selbe, ist aber irgendwie deutlich übersichtlicher, oder?

    PHP-Code:
    <?php

    $sql 
    "SELECT * FROM punkte ORDER BY gesamt DESC LIMIT 10";
    $topwriter mysql_query($sql)
      or die(
    mysql_error());

    ?>

    <h1>Top 10 der Writer</h1>

    <table>
      <tr>
        <th>Rang</th>
        <th>Writer</th>
        <th>Punkte</th>
      </tr>

    <?php
    $i 
    0;
    while(
    $row mysql_fetch_assoc($topwriter))
        echo 
    '
      <tr>
        <td>' 
    . ++$i '</td>
        <td><a href="/?kad=writerpage&writer=' 
    $row['userid'] . '">' $row['userid'] . '</a></td>
        <td>' 
    $row['gesamt'] . '</td>
      </tr>'
    ;
    ?>

    </table>
    Vielleicht kommst du damit eher zurecht.

    Viel Erfolg!

    Kommentar


    • #3
      Ok Danke...dieser Code ist besser und er gibt alles "korrekt" wieder. AUSßER, dass er es immer noch nicht sortiert....was ist noch an diesem Code falsch? er soll die daten vom der größten bist zur kleinsten "gesamt" zahl ordnen...

      PHP-Code:
      <?php

      $sql 
      "SELECT * FROM punkte ORDER BY gesamt DESC LIMIT 10";
      $topwriter mysql_query($sql)
        or die(
      mysql_error());

      ?>

      <h1>Top 10 der Writer</h1>

      <table>
        <tr>
          <th>Rang</th>
          <th>Writer</th>
          <th>Punkte</th>
        </tr>

      <?php
      $i 
      0;
      while(
      $row mysql_fetch_assoc($topwriter))
          echo 
      '
        <tr>
          <td>' 
      . ++$i '</td>
          <td><a href="/?kad=writerpage&writer=' 
      $row['userid'] . '">' $row['userid'] . '</a></td>
          <td>' 
      $row['gesamt'] . '</td>
        </tr>'
      ;
      ?>

      </table>

      Kommentar


      • #4
        Gib die Query mal in PHPmyAdmin ein. Ich wüsste nicht, warum die nicht sortieren sollte. Glaube auch nicht, dass du tatsächlich genau meinen code verwendest

        Kommentar

        Lädt...
        X