PHP・SQL初心者です。
MySQLとPHPでサイトを構築しています。
データベースへの接続・テーブル内容の表示等はできるのですが、リンクをどのようにすれば貼り付けることができるのかわからなかったため質問させていただきました。
ID 名前 友達1 友達2 ・・・
1 田中 佐藤 前田
2 山田 XXX XXX
3 佐藤 XXX XXX
4 前田 XXX XXX
・
・
このようなデータベースを用意し、
名前が「田中」さん(ID が 1)のページに
-------------------------------------------
田中さんの友達
友達1:佐藤
友達2:前田
-------------------------------------------
このように表示し、
「佐藤」「前田」の箇所にデータベースの「ID」を利用してリンクを貼り付けたいと考えております。
データの抽出・画面への表示は、
$quryset = mysql_query("SELECT ID,名前,友達1,友達2 FROM テーブル名 WHERE ID= '1' ");
while ($data = mysql_fetch_array($quryset)){}
このような関数で行っております。
表示は問題なくできているのですが、
表示の「佐藤」「前田」の箇所にリンクを設定するの方法がわかりません。
「ID」 = 1 の情報を表示しているため「山田」と表示している箇所に
<a href="http://XXXX.com/$data[ID].php">山田</a>
と設定してリンクをつけることはできます。
友達の欄の「佐藤」「前田」の箇所にリンクをつけることができません。
データベースの「ID」欄、を利用して
-------------------------------------------
田中さんの友達
友達1:<a href="http://XXXX.com/ID名.php">佐藤</a> ID名=佐藤さんのID欄にある2
友達2:<a href="http://XXXX.com/ID名.php">前田</a> ID名=前田さんのID欄にある4
-------------------------------------------
↓↓↓
IDが抽出されて
-------------------------------------------
田中さんの友達
友達1:<a href="http://XXXX.com/2.php">佐藤</a>
友達2:<a href="http://XXXX.com/4.php">前田</a>
-------------------------------------------
このような形で表示できれば理想なのですが、
使用する関数やSQLの構文がわかりません。
初心者のため、考え方が根本的に間違っているのかもしません。
お詳しい方、まったく別の方法でも構いませんので解決する方法をご教授頂ければ幸いです。
No.1ベストアンサー
- 回答日時:
テーブル設計はどのようになっているんでしょうか?
SELECT ID,名前,友達1,友達2 FROM テーブル名
友達1、友達2がそのまま表示出来ているということは、友達のIDではなく友達の名前で保持しているのでしょうか?
もしそうであれば「テーブル設計がおかしい」としか言いようがありません。普通は友達のIDを保持します(でSQl文で引っ張ってくるときにリレーションで友達のIDと名前を同時に取得する)。
「友達の名前」で保持してしまうと名前からIDを取ってくるのは無理です(同一の名前があったりするでしょう?それを区別するための ID です)。
ご回答ありがとうございます。
友達のIDではなく名前で情報を記録しておりました。
「テーブル設計がおかしい」まさにその通りでした。
リレーションという言葉さえ知らなかったため大変参考になりました。
調べて取り組んだ結果、正しいのかはわかりませんが「自己結合」を使うことによって
今回問題の箇所は解決できました。
まだまだ超がつくほどの初心者ですが勉強を続けてよい設計ができるように頑張ります。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonのWebスクレイピングでfind_allだとurlがNoneに 4 2022/04/17 18:21
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- Oracle sqlで質問です。 idを元にidに紐付くデータで住所コードがjpのみのデータ以外のidを取得したい 4 2023/03/20 17:41
- MySQL 【MySQL】本当に困っているので、助けてください。よろしくお願いします。 3 2023/06/03 14:24
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「以降」はその当日を含む?含...
-
息子の友達との体の関係はあり...
-
友達の嫁が在宅セミナー講師を...
-
クリエイターって少しずれてま...
-
友達からの誘いの頻度が多いと...
-
iPhoneとiPadは同期した方がい...
-
甲の友達、乙の友達ってどうい...
-
体調不良が理由で友達との約束...
-
高校生で 友達一人もいないのっ...
-
遊ぶ約束→当日知らない人が一緒...
-
正直に言ってください。 太って...
-
年長さん特定のお友達
-
補正下着のマルコから逃げる方...
-
ライブの最前列って、身内や知...
-
ジャンカラについての質問です...
-
下品な質問ですみません。 愚問...
-
結婚を機に他県に引越しました...
-
パートナー(既婚、未婚問わず...
-
変な家 vs 犬鳴村
-
マッチングアプリで出会った方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
息子の友達との体の関係はあり...
-
「以降」はその当日を含む?含...
-
友達の嫁が在宅セミナー講師を...
-
友達からの誘いの頻度が多いと...
-
iPhoneとiPadは同期した方がい...
-
体調不良が理由で友達との約束...
-
友達にライブが落選したと嘘を...
-
ジャンカラについての質問です...
-
正直に言ってください。 太って...
-
補正下着のマルコから逃げる方...
-
年長さん特定のお友達
-
友達が私に泊めさせてもらうっ...
-
遊ぶ約束→当日知らない人が一緒...
-
48歳独身生活保護。 お金もない...
-
下品な質問ですみません。 愚問...
-
高校生で 友達一人もいないのっ...
-
ジントニックの使い道ないです...
-
友達の家へ泊まった時のお礼に...
-
ユニバに10時に帰りたいんです...
-
friendとfriendsの違いってなん...
おすすめ情報