|
|
|
| Здравствуйте. Название темы - это не просто образное выражение. Она действительно работает именно через раз. Правда я думаю что дело не в базе данных. Вот часть документа(полностью выставлять не стал, а только ту часть которая не работает):
[PHP]$result2 = mysql_query ("SELECT added_dz FROM users WHERE login='$author'");
$myrow2 = mysql_fetch_assoc($result2);
$count = $myrow2['added_dz'];
$count = $count + 1;
echo $count;
$z = "UPDATE users SET added_dz = '$count' WHERE login = '$author'";
$w = mysql_query($z);[/PHP]
Суть кода такова: из базы выбирается переменная, увеличивается на один и закидывается обратно в базу. Для проверки я даже добавил echo , чтобы видеть как увеличивается переменная. Так вот, один раз она увеличивается, другой раз остается неизменной и даже не выводится с помощью echo. Я проверил документ, в нем нет таких же переменных и уж тем более нет никакого условия работы через раз. Но все равно каждый второй раз переменная в БД не обновляется. Что делать? Помогите! Так вообще может быть? | |
|
|
|
|
|
|
|
для: Aristokrat96
(09.12.2011 в 17:35)
| | 1. Во-первых в случае запросов, в которых участвуют PHP-переменные лучше всегда проверять ответ MySQL на предмет ошибок (мало ли по каким причинам будет неправильное значение в переменной). PHP и MySQL выполняются в разном адресном пространстве и если о PHP-ошибках вам PHP-интерпретатор сообщит, но о MySQL ошибках он ничего не знает, поэтому если вы их не обрабатываете - они просто игнорируются, а код пытается продолжать выполняться.
2. Во-вторых эту задачу лучше выполнять одним запросом
UPDATE
users
SET
added_dz = added_dz + 1
WHERE
login = '$author'
|
| |
|
|
|