
No.5ベストアンサー
- 回答日時:
こんにちは。
URLを載せちゃうと、消されちゃうと思います。
det.phpで詳細を取得するSQLを生成していると思いますが、
今のSQLですと、全件取得です。
一覧表示のほうとSQLが同じです。
また、idに値を与えているのですが、それを受け取っていません。
No4の回答内容の一部ですが、もう一度見直してみてください。
== det.php
$id = $_GET['id'];
$sql = "SELECT * FROM SUBTABLE WHERE ID=$id";
$result = mysql_query ( $sql );
$rows = mysql_fetch_array ( $result );
まず、$id=$_GET['id']でURLの中からidの値を受け取ります。
受け取ったidを条件として1件取得するSQLを生成します。
WHERE句を使用して、取得するレコードの条件を決めます。
(ここが重要です)
こんにちは。
No.4の設定を入れたつもりだったのですが、
反映されておりませんでした。
これでようやくスタート地点に立てたという感じです。
長い間どうもありがとうございました。
No.4
- 回答日時:
こんにちは。
一覧からタイトルをクリックして詳細のページに内容を表示する方法でしょうか?
それでしたらdet.phpが詳細ページを表示するとして、
== 一覧表示PHP
$sql = "";//一覧を取得するSQL
$result = mysql_query ( $sql, $con );
while ( $rows=mysql_fetch_array($result) ) {
// 取得した一覧を出力
print "<a href=\"det.php?id={$rows['ID']}\">{$rows['ID']}番のデータを開きます</a>\n";
}
== det.php
$id = $_GET['id'];
$sql = "SELECT * FROM SUBTABLE WHERE ID=$id";
$result = mysql_query ( $sql );
$rows = mysql_fetch_array ( $result );
// $rowsに各カラムの情報が入っているのでHTML内に埋め込んで出力
=========================
こんな感じでidというものにキーとなるものを渡してあげて、
それを受け取り、SQLを生成して取得すればその一つの情報が取得できます。
(上のテーブル名やカラム名は適当に置き換えて下さい。)
IDをキーとしてリンクを生成しているので実行してみればわかりますが、
<a href="det.php?id=0">0番のデータを開きます</a>
<a href="det.php?id=1">1番のデータを開きます</a>
・
・
・
と言う感じのソースが出力されていると思います。
det.phpでそのidの値を取得して、レコードを取得し、表示します。
何か詳細ページ等を開く際は
1.キーとなるIDをURL引数に渡すか、POSTで渡す。
2.受け取ったキーを使い、その1件だけを取得するSQLを生成し情報を取得する
この回答への補足
ご回答ありがとうございます。
早速教えて頂いた情報を参考に、作成してみました。
しかし、
親記事から受け取ったキーにて小記事に1件のみ表示されるはずなんでが、
複数作成されてしまいます。
原因として、どこがわるいのでしょうか?
ご教授のほどお願いします。
No.3
- 回答日時:
こんにちは。
そうですね。表面上の用途は違うかもしれませんが、やっていることは同じになります。
(掲示板として使っているか、QAのように使っているか)
> ここの部分は絶対に覚えなさいという部分がありましたら、お教え頂けないでしょうか?
DBを使って作るのであれば、まずは簡単な掲示板を作って勉強してみてはいかがでしょうか。
(簡単なというのはレス機能がなく、1つのメッセージ毎表示するようなタイプ)
登録、表示、管理機能(削除等)をつけて作ってみてください。
そうすると、新規記事登録の方法、表示の方法、削除の方法等がまずわかると思います。
上のものが完成したらレス機能のあるものを作ってみましょう。
これは一からではなく、上のものに機能追加を行います。
例えば、別テーブルでレスを持てば、親記事のIDをキーにして簡単に実現することが可能です。
(親記事の一覧を表示しながら、レステーブルからレスを取得し、レスの一覧を表示。)
例ですが(一部端折ってます)
// 親記事を取得
$sql = "SELECT * FROM MAINTABLE";
$result = mysql_query ( $sql, $con );
while ( $mainMes=mysql_fetch_array($result) ) {
// 整形しつつHTMLを生成して親記事を表示
// レス記事を取得
// 子記事機能(取得した親記事のIDを使用して子記事を取得する
$sql = "SELECT * FROM SUBTABLE WHERE ID={$mainMes['id']}";
$resResult = mysql_query ( $sql, $con );
while ( $subMes=mysql_fetch_array($result) ) {
// 整形しつつHTMLを生成して子記事を表示
}
}
こんな感じにすると、親記事と子記事(レス)表示機能を持ったものになります。
// 子記事機能 の部分が無ければ最初の親記事のみ表示できる掲示板です。
何か難しそうなことをやっていても多くの場合は基本的な事の組み合わせになっています。
それをいかに発想できるかでしょうか。
難しく考えると意外と進まないものです。発想の転換も大切です。
参考URL先のを見ましたが、クラスを作って使用しています。
(いわゆるオブジェクト指向的な作り方)
いきなりだと厳しいかもしれません。
ソースは読みやすいのですが、いきなりでは読解していくのは難しいかもしれません。
まずは、簡単なものを作ってみて、そこからレベルアップにチャレンジしていってみてはいかがでしょうか。
いきなり大きいものを作ろうとしても行き詰まって作るのがいやになってしまうかもしれません。
是非、がんばって下さい。
この回答への補足
ご回答ありがとうございます。
>DBを使って作るのであれば、まずは簡単な掲示板を作って勉強してみてはいかがでしょうか。
>(簡単なというのはレス機能がなく、1つのメッセージ毎表示するようなタイプ)
はい。こちらにつきましては作成したことがあります。
>上のものが完成したらレス機能のあるものを作ってみましょう。
>例えば、別テーブルでレスを持てば、親記事のIDをキーにして簡単に実現することが可能です。
>(親記事の一覧を表示しながら、レステーブルからレスを取得し、レスの一覧を表示。)
別テーブル方法はまだ作成したことがありませんでしたので、
実施してみたいと思います。
しかし、やはりリンクの問題はどのように解決するのか不明です。
例えば、小記事にてメールアドレスへリンクを貼るページを作成する場合、
サブテーブルにありますメールアドレスへ下記のようにリンクを貼れば解決しますが、
$sql = "SELECT * FROM subtable ORDER BY id DESC";
$res = mysql_query($sql, $conn) or die("データ抽出エラー");
while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
echo "<hr>";
if (!is_null($row["g_mail"])) {
echo "<a href=\"mailto:".$row["g_mail"]."\">"
.cnv_dispstr($row["g_name"])."</a>";
}
親記事にある小記事へリンクが貼られているタイトルをクリックしたとき、
小記事のページを出力させるための方法がわかりません。
$sql = "SELECT * FROM guestdata ORDER BY id DESC";
$res = mysql_query($sql, $conn) or die("データ抽出エラー");
while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
echo "<hr>";
if (!is_null($row["g_mail"])) {
echo <a href=?????>?????</a>;
?????の部分は具体的にどのようになるのでしょうか?
よろしくお願いします。
No.2
- 回答日時:
こんにちは。
具体的なスクリプトといっても、テーブルの構造はわかりませんし、
方法はいろいろな方法があるので難しいです。
やってることとしては、URLにIDを埋め込み、そのIDを受け取る。
受け取ったIDを使用して取得用のSQLを生成。
そのSQLを使用して情報を取得。
取得した情報を元に回答、補足を取得
(回答数分のループを行い表示を行う)
(補足を同時に取得しているかもしれません。そこはテーブル構造とSQLの使い方次第?)
流れはこんな感じです。
同じようなことをやってる物は多いと思いますが、なかなかDBを使った物で参考になるような
スクリプトはないかもしれません。
DBを使っていない(テキストファイル)ものだったらあるかもしれません。
やってることは掲示板の記事表示(レスつき)と同じようなものなので掲示板スクリプトを
探してみるといいかもしれません。
(やはりDBのはなかなかありません)
この回答への補足
ありがとうございます。
すると、下記のようなサイトになるのですね。
下記はphp+mysqlです。
http://www.kenjiweb.com/?mode=bbs#dbbbs
しかし、ソースをみていると、
一筋縄では覚えられそうにないですね。。
先は長そうです。
もしよろしければ、
ざっとでいいのですが、
ここの部分は絶対に覚えなさいという部分がありましたら、お教え頂けないでしょうか?
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 Windows PC 「スタート」の表示 1 2022/05/14 14:27
- Safari(サファリ) 画面のサイズ 1 2023/05/28 14:00
- アプリ スマホ画面のホーム位置にカメラアプリを表示させるには 1 2022/11/07 06:26
- Windows 8 動画の再生とタイトルの変更方法を教えてください。 3 2022/08/01 14:51
- その他(ブラウザ) エッジのスタート画面について 2 2022/08/17 11:12
- Word(ワード) ワード2010でコメントを印刷しない方法 6 2023/07/20 14:27
- その他(ブラウザ) bingチャットの内容(縦長)をスクリーンショットで保存する方法 3 2023/02/28 02:13
- その他(動画サービス) Tver アンケートに回答しても視聴できない(何度もアンケート画面が開く) 1 2023/01/13 21:47
- オープンソース Excelファイルをデバッグしたい 4 2022/09/15 10:16
- Visual Basic(VBA) Excelのマクロコードについて教えてください 1 2022/03/27 12:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「取得先」という表現について
-
リンク表示方法について2
-
モジュールからルート名前空間...
-
コンビニで住民票を取得した場...
-
VB+SQLserverでRecordCount問題
-
各クライアントマシンのログイ...
-
グローバルIPの取得方法
-
PHPを使って、別サイトの一部を...
-
Yahoo! JAPAN IDを新規取得でき...
-
VB or VBScriptでPCの製造番号...
-
データの表示の仕方について教...
-
URLからタイトルを取得したい!
-
get_headersでLast-Modified
-
format関数について
-
vb6で、特定のフォルダを常時監...
-
ドライブ文字からハードウェア...
-
EXCEL、マクロ-改ページ行番号...
-
VBS「開いているページ」のURL...
-
ps3で久しぶりにCDの音楽情報取...
-
Macアドレスを取得するには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「取得先」という表現について
-
コンビニで住民票を取得した場...
-
Yahoo! JAPAN IDを新規取得でき...
-
EXCEL、マクロ-改ページ行番号...
-
Excel VBA:特定の文字列以降(...
-
VBS「開いているページ」のURL...
-
【C#】FindWindowExの使い方を...
-
ps3で久しぶりにCDの音楽情報取...
-
IPアドレスとMACアドレスを取得...
-
ローカルのコンピュータ名を取...
-
VBAでPDFのアクティブページ番...
-
VB.NETでボリュームを取得・設...
-
アメブロでテーマを指定したRSS...
-
DMMの動画を全件取得したのです...
-
(Win32)ファイルパスから物理ド...
-
【VBA】EXCELブックを開かずに...
-
各クライアントマシンのログイ...
-
VB or VBScriptでPCの製造番号...
-
format関数について
-
PHPを使って、別サイトの一部を...
おすすめ情報