現在、phpとmySQLを勉強しています。
データベース名:animal、テーブル名:pet、フィールド名が順にID:title:url:scoreで
1:ねこ:neko.com:43
2:いぬ:空白:24
3:空白:空白:空白
4:とり:bird.com:62
:
というデータがあります。
このとき、
1<a href="neko.com">ねこ</a>43<br>
2<a href=" ">いぬ</a>24<br>
3<a href=" "></a><br>
4<a href="bird.com">とり</a>62<br>
:
のように10行ずつhtmlに出力するPHPを書こうと思っています。
10行ずつですので、上の例だとURLの最後の書き換えによってpage=2、page=3、…とアクセスできます。
自分でもmysqlを呼び出し、要素を変数に格納して、foreachを使って最後まで順繰りに出力するように作成して、ページングするように作ってみたのですが、どうも正常に出力されません。
考えましたがどうにも原因が不明なので、どなたかこのような動作を示すPHPの模範コードを書いていただけないでしょうか。
PHPは未だ勉強中ですが、教えていただいたコードと自分のコードを比較して、より精進したいと思います。
どうかよろしくお願いします。
No.2ベストアンサー
- 回答日時:
簡単なページング機能付きで書いてみました。
細部でなにかしら修正が必要かもしれないのでがんばってください。
(質問文を見るとGETを使うような記述でしたがこれはPOSTで処理してます)
検索機能とか付けてみるのも勉強になると思いますよ。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Pragma" content="No-Cashe">
<meta http-equiv="Cache-Control" content="No-Cache">
<title>リスト</title>
<script type="text/javascript">
<!--
function changepage (page) {
document.forms["linkform"].page.value = page;
document.forms["linkform"].submit();
}
-->
</script>
</head>
<body>
<?php
// MYSQL DB接続パラメータ設定(自分の環境に合わせて設定)
$host=""; // ホスト名
$user=""; // ユーザー名
$pass=""; // パス
$dbname=""; // 使用DB名
// 表示するページの決定
if (isset($_POST["page"])) {
$page=$_POST["page"];
} else {
$page=1;
}
// MYSQLコネクト
mysql_select_db($dbname,mysql_connect($host,$user,$pass)) or die("DBコネクトエラー");
// 1ページ表示最大件数設定
$maxrow=10;
// 全件数を取得
$sql = "SELECT count(*) as count FROM pet";
$result=mysql_query($sql);
$row=mysql_fetch_assoc($result);
$count = $row["count"];
// 表示するページのデータの先頭行と最終ページの値を計算する
$first = (($page-1)*$maxrow);
$maxpage=intval((($count-1)/$maxrow)+1);
// ページリンク作成(表示ページの番号は少し大きくする)
$pagelink = "全".$count."件<br>\n";
for ($i=1;$i<=$maxpage;$i++) {
$pagelink = $pagelink."<a href=\"#\" onclick=\"changepage('".$i."');return false;\">";
if ($i==$page) {
$pagelink = $pagelink."<font size=\"+2\">".$i."</font></a> ";
} else {
$pagelink = $pagelink.$i."</a>\n";
}
}
print($pagelink."<br><hr>");
// 情報を取得
$sql = "SELECT id,title,url,score FROM pet";
$sql = $sql." ORDER BY id limit ".$first.", ".$maxrow;
$result=mysql_query($sql);
while($row=mysql_fetch_assoc($result)) {
?>
<?php print($row["id"]); ?><a href="<?php print($row["url"]); ?>"><?php print($row["title"]); ?></a><?php print($row["score"]); ?><br>
<?php
}
?>
</table>
<form action="list.php" name="linkform" method="post">
<input type="hidden" name="page" value="">
</form>
</body>
</html>
おお!ご回答、ありがとうございます!
duronさんが作成してくれたコードを参考にして、自分のコードはどこが悪かったのか明日1日かけてじっくり検討してみようと思います。
これで勉強が続けられます。大変助かりました。
また問題に直面した場合は、どうかよろしくお願いいたします。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PHP ページング データベース 1 2022/06/16 10:30
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPで[]の使い方について
-
BLOBでの画像表示について
-
DBで検索結果に該当するデータ...
-
sortable ギブアップです…助け...
-
while文の中にwhile文を書きた...
-
PHPでMySQLのデータを2次元配...
-
PHP 10件表示 "前へ" "次へ"
-
ユーザー名、パスで認証して、...
-
MySQLに保存した画像を表示したい
-
PHP と MySQL でテーブルの行数...
-
PHPについてなのですが未定義の...
-
MySQLでデータベースにデータin...
-
VBAをつかってクエリの情報を抽...
-
テキストボックスに入れた内容...
-
ResultSetインターフェイスでの...
-
insert1つの処理でもトランザ...
-
csvをDBへ読み込んだら、NULLが...
-
JAVA SQLServerException 列名 ...
-
VB.NET
-
エラー3011
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DBで検索結果に該当するデータ...
-
PHPで[]の使い方について
-
アラートでyes noを作りたいです。
-
phpでmysqlを使ってデータベー...
-
PHP、SQLite3のデーターでログ...
-
dbに登録したデータをphpのプル...
-
checkboxクリック時、SQLを実行...
-
PHPでMY SQLの連想配列をリンク...
-
文字化けが解決できません。お...
-
PHPでMySQLデータを呼び出し、w...
-
SELECT結果から動的にコンボボ...
-
php ログインフォーム作成
-
VBA初心者です。
-
チェックボックスでチェックし...
-
sortableを使用したデータのUPDATE
-
php mysqlで作ったデータをgoog...
-
mysql_insert_id()の使い方
-
PHPとSmartyを使い、データベー...
-
MySQLに保存した画像を表示したい
-
PHP+MySQLでの配列のinsert文に...
おすすめ情報