2012-02-24 8 views
-2

私のレコードがmySQLデータベース内で25,8および7と言っているとします。しかし、データベースからレコードを取得すると、2,3、および4と表示されます。レコードが更新されますが、PHPファイルから取得した場合は変更しないでください

選択に対処するものはありますか?このレコードが更新されないようにつかん原因に何か問題がある場合は

$poll1c1 = (int) mysql_query("SELECT choice1 from poll1"); 
$poll1c2 = (int) mysql_query("SELECT choice2 from poll1"); 
$poll1c3 = (int) mysql_query("SELECT choice3 from poll1"); 

:それは私がこれらの変数をつかむために使用しています唯一の文ですので。私にお知らせください。

おかげで、クリス

+0

'.... – Wrikken

答えて

1

mysql_query()はそれだけで結果を返す、レコードを返しません。レコードを取得する必要があります。また、1つのクエリで取得する必要があります。 3つではありません。

$result = mysql_query("SELECT choice1, choice2, choice3 FROM poll1"); 
if($result) { 
    list($poll1c1, $poll1c2,$poll1c3) = mysql_fetch_row($result); 
} 
else { 
    echo mysql_error(); 
} 
0

"SELECTについては、SHOW、DESCRIBE、EXPLAINおよび結果セット、するmysql_queryを(返す他の文)が成功した場合にリソースを返し、エラー時にFALSE。"

http://php.net/manual/en/function.mysql-query.php

あなたは本当にプログラミングを開始するよりも、最初のマニュアルをお読みください。

また、マニュアルページにいくつかの実際の例があります。

0

これはmysql_queryの使用方法ではありません。ドキュメントを確認してください。

$r=mysql_query("SELECT choice1,choice2,choice3 from poll1"); 
if ($r) { 
    //Assumes there's only ever one row... which seems quite 
    // unlikely but it's the way you wrote it. 
    $row=mysql_fetch_assoc($r); 
    $poll1c1 = (int)$row["choice1"];//Cast may be unnec. depending on column type 
    $poll1c2 = (int)$row["choice2"]; 
    $poll1c3 = (int)$row["choice3"]; 
    mysql_free_result($r); 
} 
+0

それは働いていた、ありがとう!これに関して私は何を検討すべきですか?私は知りたいです。私は少しmysql_fetch_assoc()とmysql_free_resultが正確に何をするのか混乱しています。 –

+0

@ChrisCates 'mysql_query'はSQLを実行して結果(' $ r')を生成し、 'mysql_fetch_assoc'は結果の複数の行を名前付き配列として取り出します。 'mysql_free_result'は' mysql_query'で生成した結果を解放します - メモリとリソースを解放します(これは良いハウスキーピングです) – Rudu

0

実際の結果をクエリから取得するには、mysql_fetch_*などを使用する必要があります。 mysql_fetch_assoc。リソースをintとintに変換するだけです。また、mysqlがタプルを渡した順序は、ORDER BY節を指定しない限り任意です。 `mysql_fetch_result`を使用し、その結果、` resource`を返しmysql_query`

See the PHP documentation.

関連する問題