- ベストアンサー
MySqlのテーブルをPHPで比較して呼び出す方法
- MySqlのテーブルをPHPで比較して呼び出す方法についての質問。
- マッチ方法に関する問題があり、うまくいかない状況にある。
- テーブル名変更時の条件指定についてアドバイスを求めている。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
紹介した人(invited user)を全件取得したいならば下記のようなメソッドでどうでしょうか。紹介した人全員を配列で返します。紹介した人が誰もいないときは空配列が返ります。 public function getInvitedUsers($inviter_id) { $stmt = $this->pdo->prepare(implode(' ', array( 'SELECT *', 'FROM `user`', 'WHERE `sno` = ?', ))); $stmt->bindValue(1, $inviter_id, PDO::PARAM_INT); $stmt->execute(); return $stmt->fetchAll(); } 「誰に招待されたのか」を取得するメソッド public function getInviter($id) { } も作っておいてもいいかもしれません。こちらは見つからなかった場合はFALSEやNULLを返すなどすればいいと思います。
その他の回答 (1)
- agunuz
- ベストアンサー率65% (288/438)
とりあえずはphp以前にMySQL(というか、データベース・SQL文法)を学んでください。 no=1002の人のデータは select * from table_name where no=1002 ですし、紹介者を得るには select * from table_name where sno=1002 だけの違いです。 #取得した列のうち、no,nameが表示対象ですね 例示されたSQL文のwhereだと id になっていますが、id では対象を絞れません(そういうテーブル設計ですよね)
お礼
ご回答ありがとうございました。 どうもうまくいきませんでしたが、知識を増やして解決するようにします^^
お礼
ありがとうございましたm(_ _)m 表示はできませんでしたが調べるとこを把握することが出来ました。 毎回お助け頂きありがとうございました。 感謝で頭があがりません。
補足
To_aru_User様 またご回答頂けるとは感謝致します。 私も上記のようにやってみたのですが表示できませんでした。 自分なりに色々試してみて思ったのですが、現在idとnoという二つの整数のカラムを用意しています。 idというのは管理者が会員を把握する noというのは会員同士(今回のような会員同士が把握する)ためのものとして用意しました。 もちろんidとnoは違う整数ですが違うテーブルでも id が 1 no が 1001 名前は山田 というものは入るようにしました。 山田2号でログイン中(no.1002) 紹介者は、 会員番号「1005」山田5号 会員番号「1006」山田6号 会員番号「1007」山田7号 会員番号「1008」山田8号 としたいということは山田2号のnoでsnoの中をまわして同じ番号があれば、その列のnameを表示する。 それで山田○号の該当者が出てくると認識しています。 なのでログインしたときのセッション(会員テーブルを * で全て取得している)で 'WHERE `sno` = ?', をした場合idのカラムでまわすことになるのではないのかと思いエラーが出ている原因と思ってはいるのですが違いますでしょうか? それかHTMLの部分(紹介者を表示しようとしているページ)への書き方が違うのかとも思ってしまいます。 このあたりのアドバイスを頂けると助かります。 毎回お世話になり申し訳ありません。