2012-01-29 15 views
0

私は非常に単純なビューカウンターを作った。最終的に私はcronjobビューのカウンタ/アップデータに変換しますが、今はページが更新されるたびにmysql更新クエリを使用します。私は、これら2つのステートメントを1つにして、処理を減らそうとする方法があれば疑問に思っていました。これらの2つのクエリ文を組み合わせる方法はありますか?

PHP:あなたがいずれかに気付いた場合は、潜在的なセキュリティ上の問題を指摘することができれば

$query=mysql_query("SELECT * FROM questions WHERE id='$q'"); //string is escaped (not shown) 
while ($row=mysql_fetch_assoc($query)){ 
    $views=$row['views']+1; 
} 
mysql_query("UPDATE questions SET views='$views' WHERE id='$q'"); 

また、それは本当に参考になります。おかげ

答えて

4

理由だけではない:

mysql_query("UPDATE questions SET views=views+1 WHERE id='$q'"); 

は、これは、私はあなたが値1でビュー毎回と増分を更新したいと思います。1.

+0

「views + 1」の「views」は何ですか?この価値はどこから生じますか。この値を取得するクエリが必要ないのですか? – kirby

+0

これはデータベースで実行されるので、 "views"の値は "views"と1の前の値の合計になるはずです。 "views"は前の値ですデータベースに格納されます。 –

+0

これは単に列の値です。それをPHPのvarsと比較してみてください。 – giorgio

1

であなたの意見を増加します。

mysql_query("UPDATE questions SET views=views+1 WHERE id='$q'"); 

次のような選択なしで直接行うことができます。

希望します。

+0

私はあなたが速く入力すると思います:) –

+0

@サバリ上記の私のコメントを参照してください – kirby

+0

@ブリュノシバ:) – Sabari