MySQL - увеличить существующее значение - PullRequest
0 голосов
/ 21 июля 2010

У меня проблема, которая беспокоит меня. У меня есть очень простая таблица (MyISAM), где у меня есть поле "count (INT) (11)"

Это просто счетчик, который увеличивается каждый раз, когда просматривается один товар / элемент. Проблема в том, что запрос увеличивает 2, а не 1.

Т.е.. Фактическое значение поля = 10

чем я бегу: mysql_query ("обновить таблицу_тест установленный счетчик = количество + 1, где id = 1");

значение счетчика полей увеличивается до 12, а не до 11.

Я подумал, что, возможно, мой скрипт выполняется 2 раза по запросу, затем я сделал чистый файл со следующими строками:


    $con = mysql_connect("localhot","user","pass");
    mysql_select_db("database");
    mysql_query("update table_test set count = count+1 where id = 1");

и ничего больше в файле .. все равно добавьте 2 insted 1. но если я копирую этот запрос и запускаю его с помощью Phpmyadmin, он работает.

Кто-нибудь имеет представление о том, что происходит?

Большое спасибо С уважением Тарсис Флоренсио

Это полный код, который я использую:


include 'includes/constants.php'; //just db_user, db_pass and connection
include 'includes/connect.php';

//here i select the actual count value
$result = mysql_query("select count from pictures where id = 6909") or die (mysql_error()." - [select count from pictures where id = 6909]");
$row = mysql_fetch_array($result);
$aux = (int)$row['viewed'] + 1; // increment
mysql_query("UPDATE pictures SET viewed = {$aux} WHERE id = 6909");

Также я попробовал:


mysql_query("UPDATE pictures SET viewed = viewed+1 WHERE id = 6909");

Если я запускаю файл, используя запрос, подобный следующему: ОБНОВЛЕНО картинки УСТАНОВЛЕНО просмотрено = 15 ГДЕ id = 6909

где я указываю значение для обновления, работает.

...