[pgsql-jp: 29457] Re: テーブル検索の仕方を教えて下さい(初歩)

Masashi Ohba ohba @ netforce.ne.jp
2003年 3月 22日 (土) 06:15:11 JST


大場です。

#関数の返り値が何を示すのか
#根本的な所で大きな勘違いをしています。

In message "[pgsql-jp: 29456] テーブル検索の仕方を教えて下さい(初歩)",clam @ infosakyu.ne.jp wrote...

>$sql = "SELECT user_id FROM tmp WHERE use_id = '$id' ;" ;
>	$result = pg_query($sql) ;
>	if ($result) {
>	       print ("ただしいIDです。") ;
>        	       
>	if (!$result) {
>	       print ("IDが違います。) ;        	       
>	}
>これだと偽で「IDが違います。」を期待しているのですが、期待に反して
>「ただしい  です。」が表示されてしまいます、
>宜しくお願いします。


$result=pg_query($sql);
で$resultには「結果ID」が入ります。
「結果ID」はselectした「user_id」が入るわけではありません。

で、「結果ID」を得たら、例えばpg_fetch_array()やpg_fetch_row()に
$resultを突っ込んで、欲しいデータを引っ張り出すわけです。

なので、$resultで「ただしいuser_id」なのか
「user_idが違うか」の判定は
まったく違う物なわけですから「できません」し
$resultには「結果ID」という何かしらの値がすでに
入ってるわけですから

#最初のif文は{}の対応おかしいけど…

if ($result) {
       print ("ただしいIDです。") ;
} 

が実行されるのは文法的には正しいわけです。

#この段階で欲しい値の「user_id」が取れると
#考えてるのが大きな間違いです

「$result = pg_query($sql);」の$resultってのが
一体何を示しているか良く考えてください。

--------------------------------------------------
Name  : 大場正志(Masashi Ohba)
E-mail: ohba @ netforce.ne.jp
url   : http://www.netforce.ne.jp/~ohba
        コガネメキシコインコ飼ってます
Add   : Fukuoka-city, Japan
        まもなく仙台に帰る予定(プーかなぁ…)



pgsql-jp メーリングリストの案内