戻る

HTMLフォームで動的に並べ替える

<?php
header("Content-type: text/html; charset=utf-8");

define("DBSERVER","localhost");
define("DBUSER","root");
define("DBPASSWORD","root");
define("DBNAME","sampledb");

//クリックされたボタンに応じて並べ替え基準を設定
if (isset($_POST["btnsort1"])) {
	//順位の昇順ボタン
	$orderby = "rank";
}
elseif (isset($_POST["btnsort2"])) {
	//順位の降順ボタン
	$orderby = "rank DESC";
}
elseif (isset($_POST["btnsort3"])) {
	//チームの昇順ボタン
	$orderby = "team";
}
elseif (isset($_POST["btnsort4"])) {
	//チームの降順ボタン
	$orderby = "team DESC";
}
elseif (isset($_POST["btnsort5"])) {
	//地域の昇順ボタン
	$orderby = "area";
}
elseif (isset($_POST["btnsort6"])) {
	//地域の降順ボタン
	$orderby = "area DESC";
}
elseif (isset($_POST["btnsort7"])) {
	//ポイントの昇順ボタン
	$orderby = "point";
}
elseif (isset($_POST["btnsort8"])) {
	//ポイントの降順ボタン
	$orderby = "point DESC";
}
else {
	//はじめて呼び出されたときの初期状態
	$orderby = "rank";
}

//DB接続
if(!$con = @mysql_connect(DBSERVER, DBUSER, DBPASSWORD)){
	die("MySQLに接続できませんでした!<br>");
	exit();
}

//DB選択
if(!$selectdb = @mysql_select_db(DBNAME)){
	die(DBNAME . "が見つかりませんでした!<br>");
	exit();
}


//文字コードセット
if(!$result =@mysql_query("SET NAMES utf8;")){
	echo "SQLエラー!<br>";
}


//テーブルヘッダ部の並べ替え用リンクのHTMLを組み立て
$body = "<form action=" . $_SERVER["PHP_SELF"]. " method=\"POST\">";
$body .= "<table border=\"1\">";
$body .= "<tr>";
$body .= "<th>";
$body .= "順位<br>";
$body .= "<input type='submit' name='btnsort1' value='↑'>";
$body .= "<input type='submit' name='btnsort2' value='↓'>";
$body .= "</th>";
$body .= "<th>";
$body .= "チーム<br>";
$body .= "<input type='submit' name='btnsort3' value='↑'>";
$body .= "<input type='submit' name='btnsort4' value='↓'>";
$body .= "</th>";
$body .= "<th>";
$body .= "地域<br>";
$body .= "<input type='submit' name='btnsort5' value='↑'>";
$body .= "<input type='submit' name='btnsort6' value='↓'>";
$body .= "</th>";
$body .= "<th>";
$body .= "ポイント<br>";
$body .= "<input type='submit' name='btnsort7' value='↑'>";
$body .= "<input type='submit' name='btnsort8' value='↓'>";
$body .= "</th>";
$body .= "</tr>";

//fifarankingテーブルのすべてのレコードを読み込むSQLを組み立て
//$orderby変数の内容をORDER BY句に指定
$sql = "SELECT * FROM fifaranking ORDER BY $orderby";

//結果セットを取得
$result= mysql_query($sql);

//結果セットからデータをループで読み込み
while ($col = mysql_fetch_array($result)) {
	$body .= "<tr>";
	$body .= "<td align='center'>" . $col["rank"] . "</td>";
	$body .= "<td>" . $col["team"] . "</td>";
	$body .= "<td>" . $col["area"] . "</td>";
	$body .= "<td align='right'>" . $col["point"] . "</td>";
	$body .= "</tr>";
}

$body .= "</table>";
$body .= "</form>";

//結果セットを破棄
mysql_free_result($result);


//MySQLとの接続を解除
mysql_close();

?>
<!DOCTYPE HTML>
<html lang="ja-JP">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?=$body?>
</body>
</html>

inserted by FC2 system