2012-01-29 3 views
0

Я сделал очень простой счетчик. В конечном итоге я перейду в cronjob view counter/updater, но пока я просто буду использовать запрос обновления mysql каждый раз, когда страница обновится. Мне было интересно, есть ли способ превратить эти 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.

+0

Что такое «взгляды» в «представлениях + 1». откуда это значение исходит. мне не нужен запрос, чтобы получить это значение – kirby

+0

Это выполняется в базе данных, поэтому говорят, что значение «views» должно быть суммой предыдущих значений «views» и 1. «views» - это предыдущее значение в базе данных. –

+0

Это только значение столбца. сравните его с vars в php (или любой другой язык, который есть) – giorgio

1

Я думаю, что вы хотите, чтобы обновить вид и каждый раз приращение со значением 1. Вы можете напрямую сделать это без выбора:

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

Это увеличит ваш взгляд.

Надеюсь, что это поможет :)

+0

Я думаю, вы печатаете быстрее :) –

+0

@sabari, пожалуйста, просмотрите мой комментарий выше – kirby

+0

@Bruno Silva :) – Sabari

Смежные вопросы