<head>
<title>データをランダムに表示する(MySQL)</title>
</head>
<h3>データをランダムに表示する(MySQL)</h3>
→Headingの略で見出しを意味する。
(数字が小さくなるにつれて文字の大きさが大きくなる)
<?php
→PHPの始まり
//接続設定(サーバ/データベース/ユーザ/パスワード
$sv = "localhost";
$dbname = "bookdb";
$user = "root";
青が代入するための関数で、赤が代入されるもの
//データベースに接続
$conn = mysql_connect($sv, $user, $pass) or die ("接続エラー");
die→接続できない場合にメッセージを出力して終了する。
mysql_select_db($dbname) or die ("接続エラー");
//データ数を取得
$sql = "SELECT COUNT(*) AS cnt FROM booktable;";
$res = mysql_puery($sql, $conn) or die ("データ抽出エラー");
↑MySQLサーバ内のデータベースをSQLで操作する。
$row = mysql_fetch_array($res,MYSQL_ASSOC);
↑(クエリ実行結果,実行タイプ)で実行結果を配列に格納したものを1行ずつ返す。
$dtcnt = $row["cnt"]-1;
if ($dtcnt <0) {
die ("データが存在しません")
}
//データを取り出す
//取り出すデータの位置をランダムに生成
mt_stand((double)microtime()*100000);
→マイクロ秒で表した時間よりシードを与える。
(前のプログラムで設定した数値を初期化して、新しい設定をするため)
$st = mt_rand(0,$dtcnt);
→ランダムな数値を表示する。
※mt_randの前にmt_srandをする必要がある。
★mt_randについて詳しくはココ!★
//取り出すデータ数→1
LIMITで指定する。
$lim = 1;
$sql = "SELECT id, bookname, author,pub,price,year,point FROM booktable
LIMIT$st, $lim;";
※mt_randを使って求めた値
※取り出すデータ数=1件
$res = mysql_query($sql, $conn) or die ("データ抽出エラー");
↑MySQLサーバ内のデータベースをSQLで操作する。
//「LIMIT」で取得するデータ位置を設定して、1件のみ取り出しています。
//取り出したデータを表示
echo”<table border=¥”1¥”>”;
echo”<tr>”;
echo”<td> </td>”;
echo”<td>ID</td>”;
echo”<td>書籍名</td>”;
echo”<td>著者名</td>”;
echo”<td>出版社</td>”;
echo”<td>価格</td>”;
echo”<td>発行年</td>”;
echo”<td>評価</td>”;
echo”</tr>”;
while ($row = mysql_fetch_array ($res, MYSQL_ASSOC)) {
echo "<tr>";
→表の1行目を定義
echo "<td>id</td>;
echo "<td>bookname</td>;
echo "<td>author</td>;
echo "<td>pub</td>;
echo "<td>price</td>;
echo "<td>year</td>;
echo "<td>point</td>;
echo "</tr>";
→表の2行目の終了
※td=Table Dateの略で表の1つのセルを作成する。
while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
echo "<tr>";
↑表の2行目
echo "<td>".$row["id"]."</td>";
echo "<td>".$row["booknam"]."</td>";
echo "<td>".$row["author"]."</td>";
echo "<td>".$row["pub"]."</td>";
echo
"<td>".$row["price"]."</td>";
echo
"<td>".$row["year"]."</td>";
echo
"<td>".$row["price"]."</td>";
↑表の2行目の終了
}
echo "</table>
↑表(テーブル)の作成の終了
//接続を解除
mysql_close($conn)
?>
→PHPの終了
</body>
</html>
→HTMLの終了