MySQL,PHP,WEBアプリケーションに関する質問です。


MySQLに以下のフィールドを持ったテーブルがあります。かっこ内はそれぞれのフィールドの意味というか使い方です。

ブログのように記事を投稿し、それを蓄積しているテーブルです。

id(記事固有のID。1から連番)
user(記事を投稿したユーザーのID。1~)
date(記事を投稿した日。2007-03-06)
title(記事タイトル)
content(記事本文)

質問1:
記事が投稿されると、その記事をHTML(PHPでも可)で自動的に出力したいです。

http://www.hogehoge.com/ID.php
のように。(IDとは上記フィールドのidの事です)

このような仕組みを解説しているサイトを教えてください。
既存のCMSを使えば可能ですが、それはNGでお願いします。


質問2:
ページに「userの値が3の記事だけを時系列(date順)に表示する」場合はどのようなスクリプトを書けばいいのでしょか?


どちらか一つのみの回答でも構いません。
よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2007/03/09 04:07:54
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:inokuni No.1

回答回数1343ベストアンサー獲得回数21

ポイント100pt

MySQL の host を「mysql_host」、

MySQL の アカウント名を「mysql_user」、

MySQL の パスワードを「mysql_password」、

該当テーブル名を「table_name」とします。


下記 PHP ファイル名を hatena.php として ttp://www.hogehoge.com/hatena.php?ID=**** にアクセスするとすると、ID が **** の記事が表示されます。

<?php

$l = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');
$re = mysql_query("SELECT * FROM table_name WHERE id = '".mysql_real_escape_string($_GET['ID'])."' LIMIT 1");

$ro = mysql_fetch_assoc($re);
echo "<html><body>\n<pre>";
echo "id: ".$ro['id']."\n";
echo "user: ".$ro['user']."\n";
echo "date: ".$ro['date']."\n";
echo "title: ".$ro['title']."\n";
echo "content: ".$ro['content']."\n";
echo "</pre>\n</body></html>";

mysql_free_result($re);
mysql_close($l);
?>

userの値が3の記事だけを時系列(date順)に表示する場合は 下記ファイルを hatena2.php として ttp://www.hogehoge.com/hatena2.php にアクセスするとお望みのように表示されます。

<?php

$l = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');
$re = mysql_query("SELECT * FROM table_name WHERE user = '3' ORDER BY date ");

echo "<html><body>\n<pre>";
while($ro = mysql_fetch_assoc($re)){
	echo "id: ".$ro['id']."\n";
	echo "user: ".$ro['user']."\n";
	echo "date: ".$ro['date']."\n";
	echo "title: ".$ro['title']."\n";
	echo "content: ".$ro['content']."\n\n";
}
echo "</pre>\n</body></html>";

mysql_free_result($re);
mysql_close($l);
?>

参考 http://dev.mysql.com/doc/refman/4.1/ja/select.html

id:tokyosmash

ご丁寧にありがとうございます。

具体的で助かります。

早速質問1に関して実験してみたのですが、以下のようなエラーが出てしまいます。

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /○○○○/○○○/○○○○/test.php on line 7

色々調べた結果「中身がなんらかの原因で取得できていない」らしいです。

http://ml.php.gr.jp/pipermail/php-users/2003-August/017793.html

もうちょっと粘ってみようと思います。

質問2についても今から実験させてもらいます。

ありがとうございました!

追記:

逆でした。

質問2を試しまして、質問1はこれからでした。

追記2:

度々すいません。

頂いたスクリプトの始めにMySQLへの接続スクリプトを書いたらうまくいきました!

2007/03/06 20:24:02
  • id:tokyosmash
    具体的で非常に助かりました。
    100ポイント進呈いたします。
    またよろしくお願いします!

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません