• ベストアンサー

PHP DBからのデータ一覧

いつもお世話になっております。 わからないことがあり、ご質問させていただきます。 PHPは初心者です。 下記の内容は会員フォームを通り、メンバー一覧ページのコードです。 member.phpとしています。 DBの中は 1番の人 first_name = 山田 last_name = 太郎 2番の人 first_name = 佐藤 last_name = 一郎 3番の人 first_name = 田中 last_name = 大輔 とします。 -------------------------------------------------- $query = sprintf("SELECT * FROM member WHERE id='%s' ",$uid); $result = mysql_query($query, $link); if ($result) { $row = mysql_fetch_array($result); if ($row) { $name = $row['first_name']."&nbsp;".$row['last_name'];//$nameは***さんこんにちはとして使用しています。 } } ・ ・ ・ <html> <body> <ul> <li></li> <li></li> <li></li> <li></li> </ul> </body> </html と記述しており、<li></li>にはfloat:left;を使っております。 ここで 佐藤 一郎 田中 大輔 山田 太郎 ソースの表示は <li><a href="#">佐藤 一郎</a></li> <li><a href="#">田中 大輔</a></li> <li><a href="#">山田 太郎</a></li> と順番にデータベースの中からfirst_nameとlast_nameだけをとりだして表示したいのですが、いくら調べてもできません。 (田中さんでログインした場合は田中さんのリストは表示されなくてもよい)

質問者が選んだベストアンサー

  • ベストアンサー
  • BellBell
  • ベストアンサー率54% (327/598)
回答No.2

$query = sprintf("SELECT * FROM member WHERE id='%s' ",$uid); 上記のSQLでは、"○○"さんこんにちはと表示するために、ログインした人のデータのみを絞り込んでデータベースから取得しています。 そこで、上記等はそのまま置いておき、別のSQLを発行してメンバー全員のデータを取得します。 //WHERE以降は絞込みの為なので、WHERE以降を削除します $query = "SELECT * FROM member " ; //ログインしたユーザーのデータを排除したい場合(ログインしたユーザー以外の人をリストアップする場合)、以下のように条件式を付けます // != に関しては、=ではない、=の逆、つまり ○○さん(山田さん)以外などになります。 //$query = sprintf("SELECT * FROM member WHERE id != '%s' ",$uid); $result = mysql_query($query, $link); あとは、#1の方の通り。 $temphtml = ''; while ($row = mysql_fetch_array($res)) { $temphtml .= "<li><a href="#">{$row['first_name']}&nbsp;{$row['last_name']}</a></li>\n" } mysql_close($con); //my_sql($con); //↑たぶんmysql_closeの書き間違い $sql = 'select * from member where 1;' ちなみに、#1の方のように『WHERE 1』にすると、WHERE以降を削除と同じ意味になります。 なので、#1の方のものそのままでも(書き間違いを直せば)動作しますよ。

h-h13
質問者

補足

ご回答有難う御座います。 BellBellさん度重なるご回答有難う御座います。 できました。 また、ご質問がありましたら宜しくお願いいたします。

すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#111181
noname#111181
回答No.1

データベースに格納されている全員の氏名をリスト表示するということですね。 下記のようにしてみて下さい。 ---------------------------------- $con = mysql_connect(ホスト名, ユーザー名, パスワード); mysql_select_db(データベース名, $con); $sql = 'select * from member where 1;' $res = mysql_query($sql, $con); $temphtml = ''; while ($row = mysql_fetch_array($res)) { $temphtml .= "<li><a href="#">{$row['first_name']}&nbsp;{$row['last_name']}</a></li>\n" } my_sql($con); echo <<< EOF <html> <body> <ul> {$temphtml} </ul> </body> </html> EOF;

h-h13
質問者

補足

ご回答有難う御座います。 上記のコード何回も試したのですが、セッションをしようしているためログインしたひとの名前しかでてきません。 佐藤 一郎でログインした場合 佐藤 一郎 佐藤 一郎 佐藤 一郎 佐藤 一郎 のようにでてきます。 ほかに方法はありますでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A