MySQL+Smartyに関するご質問です。


PHPファイル内で

------------------------------------------------------------
//idが'1'のユーザーを問い合わせ
$rs = mysql_query("SELECT * FROM tb_user WHERE id='1'");
$data = array();

//配列の出力
while ($item = mysql_fetch_array($rs)) {
$data[]=array("id"=>$item['id'],"name"=>$item['name']);★
}
-----------------------------------------------------------

とした場合の★の『$item['name']』の値を同PHPファイル内で
取得したいのですがどのように記述すればよいのでしょうか?

目的は同ファイル内で続いて他のテーブルから★の値を使用して
問い合わせたいのですが、値の取得方法が分からず困っています。

お分かりになる方いらっしゃいましたらご教授お願い致します。

回答の条件
  • 1人2回まで
  • 登録:2009/04/10 03:29:39
  • 終了:2009/04/10 05:36:27

ベストアンサー

id:tdoi No.1

tdoi回答回数174ベストアンサー獲得回数752009/04/10 04:21:06

ポイント100pt

質問の意図が分からないのですが、コメント欄が開いていないので、こちらに失礼します。

ご質問の意図は、whileの外側で検索結果のnameカラムのデータを利用したいということでしょうか?

それであれば、$dataに格納していますので、

$data[インデックス]['name']

とでも参照することはできると思います。

こんなことを疑問に思われるとも思わないので、ちょっと意図をつかみかねています。


なお、

while ($item = mysql_fetch_array($rs)) {

while ($item = mysql_fetch_assoc($rs)) {

ということでよいのですよね?


また、nameカラムの要素で他のテーブルを検索するのであれば、SQLクエリでJOINしてしまうのも手だと思います。


現在、問題としている事柄を整理して頂き、対象となるテーブルの構造と、それから得たい結果を示してもらえると、もう少しお手伝いできるかもしれません。

id:gelgelgel

>それであれば、$dataに格納していますので、

>$data[インデックス]['name']

>とでも参照することはできると思います。

>こんなことを疑問に思われるとも思わないので、ちょっと意図をつかみかねています。

すみません・・。ズバリ上記のことが聞きたかったんですね・・。

今までネットと参考書を頼りに何となく制作してきましたので、

あまり連想配列の定義が分かっていなくて色々試したのですが、

やっとわかってスッキリしひとつ賢くなりました。ありがとうございました。

「mysql_fetch_array」と「mysql_fetch_assoc」の違いも初めて知りました。

(mysql_fetch_assocの存在自体頭になかった・・)

>また、nameカラムの要素で他のテーブルを検索するのであれば、SQLクエリでJOINしてしまうのも手だと思います。

JOINの存在も昨日初めて知りました。結果上記の問題はJOINで解決したのですが、

取得する方法があれば知りたいと思いご質問させていただきました。

ご丁寧なご回答ありがとうございました。

2009/04/10 05:36:13

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません