こんにちは
PHPは今まで他人様の作成したスクリプトをそのまま使用したりちょこっと改造するだけでしたが、
現在必要としているスクリプトが探してもなさそうなので
自分で作成しようと決めて勉強を始めましたが
どうしても悩んでいる部分があるのでご教授いただけると助かります。
環境は以下の通りです
apache 1.3.37
PHP 5.25
MySQL 5.0
現在の状況なのですが
`uid` mediumint(8) NOT NULL auto_increment,
`user` varchar(25) NOT NULL,
`pass` varchar(32) NOT NULL,
`place` varchar(32),
`sev` varchar(32),
`date` varchar(25) NOT NULL,
`regdate` datetime,
`gate` varchar(25),
`statue` varchar(25),
PRIMARY KEY (`uid`),
KEY `user` (`user`),
KEY `date` (`date`),
KEY `gate` (`gate`),
KEY `statue` (`statue`)
このようなテーブルが作成してありユーザーがフォームから登録したものをDBに保存していき、
1ページに数件分ずつの表示で何ページにもわたって
全件を表示するようなページをです。
フォームからDBへのデータの保存はできるようになりましたが
表示をする際に何件もの表示をするのにどういった手法で行うのがいいのかで悩んでいます。
現在は最新の1件だけ表示されるようなページになっています。
<?php
include ("config.php");
$con = mysql_connect($dbhost, $dbuser, $dbpasswd);
$selectdb = mysql_select_db($dbname, $con);
$sql = "SELECT * FROM testdata ORDER BY regdate DESC";
$rst = mysql_query($sql, $con);
$datanum = mysql_num_rows($rst);
if ($datanum < 1) {
print("データがありません。<br>\n");
print("登録は <a href=\"regist.php\">こちら</a> から");
mysql_close($con);
exit;
}
$data = mysql_fetch_array($rst)
?>
<table width="95%" border="0" cellspacing="1">
<tr>
<td><table width="100%" border="0">
<tr
<td colspan="6">登録情報</td>
</tr>
<tr>
<td width="13%">登録者名</td>
<td width="20%">
<?=$data['user']?>
</td>
<td width="13%">場所</td>
<td width="20%">
<?=$data['place']?>
</td>
<td width="13%">サーバー</td>
<td width="20%">
<?=$data['sev']?>
</td>
</tr>
<tr>
<td>登録日時</td>
<td>
<?=$data['regdate']?>
</td>
<td>日時</td>
<td>
<?=$data['date']?>
</td>
<td colspan="2"></td>
</tr>
</table></td>
</tr>
<tr>
<td><table width="100%" border="0">
<tr>
<td colspan="5">状態</td>
</tr>
<tr>
<td width="16%">ゲート</td>
<td width="30%"><?=$data['gate']?></td>
<td></td>
<td width="16%">statue</td>
<td width="30%"><?=$data['statue']?></td>
</tr>
</table></td>
</tr>
</table>
DBから何件分もの表示をするにはDBのデータを連想配列にするのかなと思っているのですが
いまいちどんな手法が良いのかわかりません。よろしければご教授くださいませ。
No.2ベストアンサー
- 回答日時:
mysql_fetch_array
http://us3.php.net/mysql_fetch_array
この説明にある通り、一回処理するごとにデータポインタを前に進めるのでループ処理で件数分処理させることができます。
ですので単に全件出力するだけなら以下のようなコードを記述をすればよいでしょう。
echo "<table>";
echo "<tr>(省略)</tr>";
while( $data = mysql_fetch_array($rst) ){
(表内部のHTMLを出力する処理を記述);
}
echo "</table>";
余談ですが、HTML中にPHPを埋め込むのは多くの場合、ソースの可読性を損なうので、できるだけPHPからネストせずにHTMLを出力するようにした方がよいでしょうし、それを手助けするクラスなどもいろいろあります。もちろん場合にもよるので絶対にいけないというわけではありませんが。
お答えいただき感謝します。
>一回処理するごとにデータポインタを前に進めるのでループ処理で件数分処理させることができます
単純にhtmlタグもPHPで出力させるように書き、その表示をループさせるだけでデータの方は同じデータの繰り返しにならず全データが表示できるという事でしょうか?
No.1
- 回答日時:
登録データ一覧をページ単位で表示したい!と言うことなら
出力するページに何ページ目を表示しているかの表示情報(*1)を
埋め込んであげて、前ページ、次ページなどのボタンがあったと
すると、そこから計算して求めることができます。
(*1): 出力する一覧に以下の表示しているページ情報を入れておく。
<input type="hidden" name="page" value="1">
最近、Web関係のことしてないので、古典的なやりかたかも。
この場合、昇順な登録番号を付けてた方が、楽かもしれないです。
ありがとうございます
その方法で10件ごとに1ページみたいな表示ができそうですね。
まずは1つのページで複数件の表示をさせることに成功したらやってみようと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- Perl PERL 1 2022/04/26 14:15
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAについて
-
PHPで[]の使い方について
-
PHP+MySQLでの配列のinsert文に...
-
VBA処理追加 こちらでご教示頂...
-
DBのデータを表示させたい
-
PostgreSQLに書き込み
-
段ごとに配色を変える方法
-
文字化けが解決できません。お...
-
VBA初心者です。
-
アラートでyes noを作りたいです。
-
空だと思ったのに・・・
-
PHP MySQL で updateができま...
-
ヒアドキュメントについて
-
pg_queryの結果を2回とりだす...
-
smartyのforeachの使い方?
-
MySQLでデータベースにデータin...
-
ResultSetインターフェイスでの...
-
実行時エラー3131 FROM 句の構...
-
JAVA SQLServerException 列名 ...
-
単純ですが、意外と穴?なデー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAについて
-
PHPで[]の使い方について
-
DBで検索結果に該当するデータ...
-
アラートでyes noを作りたいです。
-
dbに登録したデータをphpのプル...
-
phpでmysqlを使ってデータベー...
-
sortable ギブアップです…助け...
-
checkboxクリック時、SQLを実行...
-
PHPでMY SQLの連想配列をリンク...
-
チェックボックスによる複数の...
-
PHPでMySQLデータを呼び出し、w...
-
mysql_fetch_objectの書き方を...
-
SELECT結果から動的にコンボボ...
-
チェックボックスでチェックし...
-
VBA初心者です。
-
PHPについてなのですが未定義の...
-
文字化けが解決できません。お...
-
htmlとphpの分離
-
php テーブルが作成できない
-
検索結果をgoogleのように数件...
おすすめ情報