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順)に表示する」場合はどのようなスクリプトを書けばいいのでしょか?
どちらか一つのみの回答でも構いません。
よろしくお願いします。
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); ?>
ご丁寧にありがとうございます。
具体的で助かります。
早速質問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への接続スクリプトを書いたらうまくいきました!