[PHP/MySQL] Sortierung der db Daten

Alonso74

www.playkidz.de
ID: 218651
L
24 April 2006
1.095
29
Moin

Ich hätte gern einen Link um die Tabelle zu sortieren weiß aber nicht wirklich wie ich da vor gehn muss kann mir dam mal bitte einer helfen.
Also es sollte jetzt z.b ein link geben wo ich die ID nach kleinster Zahl und Grösster Zahl sortieren kann.
Das müsste doch mit desc und asc gehn nur weis ich halt nicht wie ich den Link plazieren.
--------------------------------------------

PHP:
echo "<table border='1' cellpadding='0' cellspacing='0' width='100%'>
<tr>
                <td bgcolor='#FFF6DB' width='25'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center>Nr.</font></td>
                <td bgcolor='#FFF6DB' width='25'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center>ID</font></td>
                <td bgcolor='#FFF6DB' width='100'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center>Username</font></td>
                <td bgcolor='#FFF6DB' width='75'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center>Angemeldet</font></td>
                <td bgcolor='#FFF6DB' width='50'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center>Baronie</font></td>
                <td bgcolor='#FFF6DB' width='75'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center>Last Login</font></td>
                <td bgcolor='#FFF6DB' width='75'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center>Last Mail</font></td>
                <td bgcolor='#FFF6DB' width='50'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center>Mails</font></td>
                <td bgcolor='#FFF6DB' width='50'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center>Bestät.</font></td>
                <td bgcolor='#FFF6DB' width='50'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center>Best.</font></td>
                <td bgcolor='#FFF6DB' width='10'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center>Mail</font></td>
</tr></table>";
mysql_connect($dbhost,$mysqlusername,$mysqlkennwort);
$res = mysql_db_query($dbname,"select * from mitglieder order by id");
$banner = mysql_num_rows($res);
for ($a=0;$a<$banner;$a++)
{
$platz = $a+1;
$platz = "$platz.";
$username = mysql_result($res,$a,"username");
$registrierung=mysql_result($res,$a,"registrierung");
$letzterlogin2=mysql_result($res,$a,"letzterlogin");
$letzterlogin = date("d.m.Y",$letzterlogin2);
$letztemail2=mysql_result($res,$a,"letztemail");
$letztemail = date("d.m.Y",$letztemail2);
$bestätigt = mysql_result($res,$a,"bestätigt");
$empfangen = mysql_result($res,$a,"empfangen");
$punkte = mysql_result($res,$a,"punkte");
$baroniegerundet=round($punkte,1);
$email = mysql_result($res,$a,"email");
$id = mysql_result($res,$a,"id");
@$rate=round((100/$empfangen)*$bestätigt,2);
if ($rate <= "$prozent") 




echo "<table border='1' cellpadding='0' cellspacing='0' width='100%'><tr>
                <td bgcolor='#FFF6DB' width='25'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center>$a</font></td>
                <td bgcolor='#FFF6DB' width='25'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center>$id</font></td>
                <td bgcolor='#FFF6DB' width='100'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center><a href='mitgliedbearbeiten.php?id=$id'>$username</font></td>
                <td bgcolor='#FFF6DB' width='75'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center>$registrierung</font></td>
                <td bgcolor='#FFF6DB' width='50'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center>$baroniegerundet</font></td>
                <td bgcolor='#FFF6DB' width='75'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center>$letzterlogin</font></td>
                <td bgcolor='#FFF6DB' width='75'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center>$letztemail</font></td>
                <td bgcolor='#FFF6DB' width='50'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center>$empfangen</font></td>
                <td bgcolor='#FFF6DB' width='50'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center>$bestätigt</font></td>
                <td bgcolor='#FFF6DB' width='50'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center>$rate %</font></td>
                <td bgcolor='#FFF6DB' width='10'><font face='Verdana,Helvetica,Geneva,Swiss,SunSans-Regular' size='1'><center><a href='mailto:$email'>Mail</a></font></td>
</tr>
</table>";
}

------------------------------
 
Alonso74 schrieb:
Das müsste doch mit desc und asc gehn nur weis ich halt nicht wie ich den Link plazieren.
Den Link platzierst du einfach in die entsprechenden Tabellenheader:
HTML:
<th><a href="script.php?orderby=id&dir=asc">Nr</a></th>
Im PHP-Code musst du prüfen, ob ein orderby gesetzt ist. Wenn ja, zusätzlich den Link mit dem entsprechenden dir=desc versehen, damit du die Sortierung umkehren kannst.
PHP:
if(isset($_GET['orderby']))
{
  $orderby=check_trough_whitelist($_GET['orderby']);
  $order=(@$_GET['order']=='desc') ? 'desc' : 'asc';
}
else
{
  // Default
  $orderby="id";
  $order="asc";
}

// für den Link:
$linkorder=($order=='asc') ? 'desc' : 'asc';

$res=$db->query("SELECT `field1`,`field2` FROM `table` ORDER BY $orderby $order");

// ....