Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: База данных работает обновляет данные через раз
 
 автор: Aristokrat96   (09.12.2011 в 17:35)   письмо автору
 
 

Здравствуйте. Название темы - это не просто образное выражение. Она действительно работает именно через раз. Правда я думаю что дело не в базе данных. Вот часть документа(полностью выставлять не стал, а только ту часть которая не работает):
[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. Я проверил документ, в нем нет таких же переменных и уж тем более нет никакого условия работы через раз. Но все равно каждый второй раз переменная в БД не обновляется. Что делать? Помогите! Так вообще может быть?

  Ответить  
 
 автор: cheops   (09.12.2011 в 19:55)   письмо автору
 
   для: 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'

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования