ДоХтор, В прцедурных запросах, exit(запрос); использую что бы запрос поглядеть)))
X-Powered-By: PHP/5.6.34
Content-type: text/html; charset=UTF-8
Invalid IP
с чем может быть связана эта ошибка при работе Cron'a? (панель CP)
# Eternal (30.03.2018 / 13:22)
X-Powered-By: PHP/5.6.34
Content-type: text/html; charset=UTF-8
Invalid IP
с чем может быть связана эта ошибка при работе Cron'a? (панель CP)
вроде юзер агент не указан потому что
Добавлено: 30.03.2018 / 21:20
# Andrei4ik93 (30.03.2018 / 14:52)
вроде юзер агент не указан потому что
разобрался уже...запустив через wget
---
Как решить задачу с изменением поля в таблице для всех строк? Например, раньше у меня все записи (строки) шли со своим id в таблице по порядку. Я подсчитывал количество строк с помощью SELECT COUNT(*) FROM `table` и потом в цикле php выполнял операцию для полей подставляя следующий id на основе количества строк WHERE id = '$n', где $n в цикле увеличивалась на единицу.
Но вот сейчас, когда некоторые записи удалены, id в таблице идут уже не по порядку и выполнить операции с подсчётом строк не получается. По той простой причине, что id не увеличивается на единицу, а может идти типа id 2, а за ним id 40 или какой-то другой. То есть, не к чему привязаться, чтобы произвести в цикле операции с определённым полем для всех строк. Куда копать и что искать для этой цели?
Sitego, лично я не понял сути проблемы - count будет считать строки независимо от порядка id.
Добавлено: 11.04.2018 / 10:16
ДоХтор, правильно, я получаю общее количество строк, но я эту цифру уже не могу использовать для цикла, как раньше. Она стала бесполезной. Ведь id у строк не идут сейчас по порядку, некоторые строки удалены безвозвратно, а id остались те, что назначались строкам при их создании. Собственно вопрос, как теперь создать цикл для операции со всеми строками, к чему цепляться?
Может можно как-то создать временное поле и пронумеровать его по порядку?
Добавлено: 11.04.2018 / 10:31
Вот как это работало раньше
$a = mysql_query("SELECT COUNT(*) FROM `user`");
$b = mysql_fetch_array($a); // $b[0] количество пользователей
for($x=1; $x<=$b[0]; $x++){ // цикл пока пройдёмся по всем пользователям
$query = "SELECT `user_bonus` FROM `user` WHERE `user_id`='$x'";
$res = mysql_query($query);
$row = mysql_fetch_row($res);
$bal = $row[0];
$result = $bal * $bonus;
mysql_query("UPDATE `user` SET `user_bonus`='$result' WHERE `user_id`='$x'");
}
В цикле WHERE `user_id`='$x'" увеличивалось на единицу и цикл работал до конца, пока не закончатся все пользователи. Но сейчас user_id уже не по порядку и как заставить пройтись скрипт по всем строкам выполняя математическую операцию? Нет одинаковых полей, нет нумерации строк по порядку.
Добавлено: 11.04.2018 / 10:36
Может как-то можно существующие id собрать в массив, а потом создать цикл по значениям этого массива? Не могу сообразить что с этим делать
Добавлено: 11.04.2018 / 10:56
Может как-то здесь можно сделать типа WHERE `user_id` > '$x' , где $x будет будет браться больше предыдущего? Но тогда не могу понять, как это загнать в цикл и чтобы значения шли по порядку расположения строк, и ничего не перепуталось.
Sitego, А разве такой запрос не подходит?
UPDATE `user` SET `user_bonus` = `user_bonus` * `user_bonus`;
Тебе же нужно увеличить user_bonus для всех существующих юзеров в базе? Если да, то просто выполни этот запрос, одной строкой без циклов.
UPD:
В контексте твоего скрипта код будет будет выглядеть так:
mysql_query("UPDATE `user` SET `user_bonus` = `user_bonus` * '$bonus'");
ДоХтор, я об этом не подумал. Зациклился на цикле
Сейчас попробую.