PHP に次のようなスクリプトがあります。
if(isset($_GET["ord"]))
{
switch($_GET["ord"])
{
case 1: $ord = "name ASC";
break;
case 2: $ord = "surname ASC";
break;
case 3: $ord = "date ASC";
break;
case 4: $ord = "zone ASC";
break;
case 5: $ord = "latency DESC";
break;
default: $ord = "name ASC";
break;
}
}
else
{
$ord = "name ASC";
}
そして、次のようなコードで使用します。
$res = mysql_query("SELECT people.name AS Name, surname, date, zone, latency FROM people WHERE online=1 ORDER BY $ord");
$content->ADD('<table class="online"><tr><th><a href="?s=online&ord=1">Name</a></th><th><a href="?s=online&ord=2">Surname</a></th><th><a href="?s=online&ord=3">Date</a></th><th><a href="?s=online&ord=4">Zone</a></th><th><a href="?s=online&ord=5">Latency</a></th></tr>');
while ($resss = mysql_fetch_array($res))
{
$content->ADD('<tr><td align="center">'.$resss["name"].'</td>');
$content->ADD('<td>'.$resss["surname"].'</td>');
$content->ADD('<td>'.$resss["date"].'</td>');
$content->ADD('<td>'.$resss["zone"].'</td>');
$content->ADD('<td>'.$resss["latency"].'</td>');
$content->ADD('</tr>');
}
実際には非常にうまく機能していますが、ASC および DESC ソートを変更する必要がある場合に問題が発生します。私の質問は、出力データで acs/desc ソートも利用できるようにスクリプトを書き直す方法です。ありがとうございました。