2009-05-14 9 views
2
$resourcesbuilt = mysql_query("SELECT resourcesbuilt FROM user WHERE username = '$username' LIMIT 1"); 

if ($resourcesbuilt<=0) 
{ 
    mysql_query("INSERT INTO resources (username, dollars) VALUES ('$username', '1000')") or die (mysql_error()); 
    mysql_query("UPDATE user SET resourcesbuilt = '1' WHERE username = '$username'"); 
} 

基本的に私はユーザーテーブルに、その特定のユーザーに対して別のテーブルが作成されているかどうかを知らせるフラグとして機能する列を持っています。それがない場合は0、存在する場合は1です。しかし、私は変数にクエリを格納し、その0かどうかをチェックすることはできないようです。なぜなら、クエリの実際の値はvarに格納されていないからです。私がvarをエコーすると、リソースID#3だけが表示されます。私のPHPとSQLの研究は失敗しました。誰もが結果フォームをPHPの変数にSQLクエリを格納する方法を知っていますか?または、少なくとも正しい方向に私を向けることができますか?前もって感謝します。SQLクエリからの値を変数に格納するにはどうすればよいですか?

答えて

2

問題は、mysql_queryによって返された結果がこのように使用できないことです。代わりに、電話する必要があります

$value = mysql_fetch_array($resourcesbuilt, MYSQL_ASSOC) 
$value ["resourcesbuilt"] 

これはあなたにテーブルのフィールドの値を与えます。 たとえば、hereをご覧ください。

0
$ rs = mysql_query("UPDATE user SET resourcesbuilt = '1' WHERE username = '$username'"); 

は あなたは、配列の名前myrow に行全体を入れて、$myrow[column_name]

によってそれらの値を取得します

$myrow = mysql_fetch_array($rs) 
を呼び出して、値を取得することができ、RSという名前のレコードセットに結果を格納します

ohと別のメモ 限り、私はあなたがそれらが選択ステートメントではないので、それらを格納することはできません覚えている 唯一のリソースy ou'llはmysql_num_rowsです。