松下昇~〈 〉闘争資料

2008-06-15

目次の増強

えーと3/5に、ハッスルサーバーと契約し、この間、概念集の項目を少しづつ増やし「目次」に登録してきました。

PHPmySQLという強力なデータベースを使用しているわりに静的な目次で(何故か逆順になっているだけの)した。ネットにUPしているものだけを選べる目次との二種類が、自動的に生成できていることろにデータベース使用の効果は表れてはいたのですが。

番号順/逆順/題名順/偶然順の4種類を切り替えられる形にしてみたいと前から思っていたのです。今日やっと実現することができました。

全部:    http://666999.info/matu/mokuji.php

今読めるもの:http://666999.info/matu/mokuji18.php

ソースも長くなりました。記念にUPしておきます。

"<"を全角に変更して貼っています。

(・・ところでついでに、データを30件ごとに表示する、ことをしてみたい。スーパーサンプルという本のp572にやりかたが載っているようなのでできるだろう。・・・けっこう大変そうなので当分あきらめよう。)


html>

<head>

<title>概念集 目次</title>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

</head>

<body style="background-color: rgb(255, 236, 226); color: rgb(0, 0, 0);">

<h3>概念集 目次</h3>

<form action="mokuji18.php" method="post">

表示順を選んでください。

<select name="sort">

<option value="jun">番号順 </option>

<option value="anti">逆順</option>

<option value="daimei">題名順</option>

<option value="random">偶然順</option>

</select>

<input type="submit" value="送信!">

</form>

<?php

$name='mokuji8';

// 接続設定(サーバデータベース/ユーザ/パスワード

(省略)

$table = 'gainen';

$table2 = 'counter2';

$page = 'page';

$count = 'count';

// データベースに接続する

$conn = mysql_connect($sv, $user, $pass) or die("接続エラー");

mysql_select_db($dbname) or die("接続エラー");

// ここからカウンタ

$sql = "UPDATE $table2 SET $count=$count+1 WHERE $page='$name'";

$result = mysql_query( $sql, $conn )

or die( "Failed to query of [$sql]" );

$sql = "SELECT $count FROM $table2 WHERE $page='$name'";

$result = mysql_query( $sql, $conn )

or die( "Failed to query of [$sql]" );

$row = mysql_fetch_assoc( $result );

$num= $row[$count];

/* mysql_close($conn); */

print ("<div align=\"right\"><a href=\"http://from1969.g.hatena.ne.jp/\">戻る</a>"." Pv: ");

print ($num);

print ("</div>");

// データを取り出す

$sort = $_POST['sort'];

switch ($sort){

case anti:

$sql = "SELECT * FROM {$table} ORDER BY id DESC";

break;

case daimei:

$sql = "SELECT * FROM {$table} ORDER BY idea ASC";

break;

case random:

$sql = "SELECT * FROM {$table} ORDER BY RAND()";

break;

case jun:

$sql = "SELECT * FROM {$table} ORDER BY id ASC";

break;

default:

$sql = "SELECT * FROM {$table} ORDER BY id ASC";

}

$res = mysql_query($sql, $conn) or die("データ抽出エラー");

// 取り出したデータを表示する

echo "<table border=\"0\">";

echo "<tr>";

echo "<td>ID</td>";

echo "<td>題</td>";

echo "<td>頁</td>";

echo "<td>リンク</td>";

echo "</tr>";

while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {

if($row["url"]==""){ echo "";}

else{

echo "<tr>";

echo "<td>".$row["id"]."</td>";

echo "<td>".$row["idea"]."</td>";

echo "<td>".$row["kan"]."-".$row["page"]."</td>";

echo "<td>"."<a href=".$row["url"].">内容</a>"."</td>";

}

echo "</tr>";

}

echo "</table>";

// 接続を解除する

mysql_close($conn);

?>

</body></html>