Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Строковые значения
Форумы портала PHP.SU » » Вопросы новичков » Строковые значения

Страниц (2): [1] 2 »
 

1. BoJlod9I - 19 Мая, 2012 - 04:18:29 - перейти к сообщению
Народ помогите скрипт довести до ума. Нужно в бд поменять 5 статей. Изменить статус 0 на 1. Запуска. этот скрипт и ничего не происходит к БД коннеект есть таблицы выводит нормально.

PHP:
скопировать код в буфер обмена
  1. $result_android_games = mysql_query("SELECT nid FROM node WHERE type = 'android_games' AND status = 0 LIMIT 5");
  2. while($row_android_games = mysql_fetch_assoc($result_android_games))
  3. {
  4. $nids = $row_android_games['nid'];
  5. }
  6.  
  7. $nids = implode(', ', $nids);
  8.  
  9. mysql_query("UPDATE node SET status = 1 WHERE nid IN '$nids' AND status = 0 LIMIT 5");
  10. mysql_query("UPDATE node_revision SET status = 1 WHERE nid IN '$nids' AND status = 0 LIMIT 5");
2. DeepVarvar - 19 Мая, 2012 - 07:05:44 - перейти к сообщению
IN со скобками.
(Добавление)
BoJlod9I пишет:
$nids
Что там после седьмой строки?
3. BoJlod9I - 19 Мая, 2012 - 07:15:15 - перейти к сообщению
ничего
4. DeepVarvar - 19 Мая, 2012 - 07:16:58 - перейти к сообщению
IN ничего ??
5. BoJlod9I - 19 Мая, 2012 - 07:19:04 - перейти к сообщению
DeepVarvar поправь код ПЛЗ, а то я тебя не могу понять что ты хочешь
Это полный скрипт кроме подключения к бд
6. DeepVarvar - 19 Мая, 2012 - 07:25:38 - перейти к сообщению
BoJlod9I пишет:
не могу понять что ты хочешь
Я хочу чтобы ты написал в запросе
не: IN '$nids'
а: IN('$nids')

Еще я хочу узнать что лежит в переменной после седьмой строки?
Еще я хочу чтобы ты включил ошибки:

ini_set("display_errors", "On");
error_reporting(E_ALL);
7. BoJlod9I - 19 Мая, 2012 - 07:40:37 - перейти к сообщению
Warning: implode() [function.implode]: Invalid arguments passed in /var/www/all2m660/data/www/xxx.x xx/x.php on line 7
(Добавление)
Метод этого скрипта таков.
Я вытаскиваю из бд id статей с сортировкой, затем беру 5 статей а точнее их id и посылаю на запись в 2 таблицах с status = 1.

Еще я хочу узнать что лежит в переменной после седьмой строки?
ID статей числа
8. Medallion - 19 Мая, 2012 - 08:11:53 - перейти к сообщению
Какие действие конкретно! По-этапно опиши, что хочешь организовать.

Просто поменять статус с 0 на 1, где type = 'android_games'
или же, произвести выборку полей,
изменить их и обновить. Какие действия?!
9. BoJlod9I - 19 Мая, 2012 - 08:13:21 - перейти к сообщению
Просто поменять статус с 0 на 1, где type = 'android_games'
но нужно для 5 статей
10. Medallion - 19 Мая, 2012 - 08:14:24 - перейти к сообщению
Чтобы изменить просто статус, не нужно выбирать, а сразу обновить
таким вот запросом.
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. mysql_query("UPDATE node SET status = 1 WHERE type = 'android_games' AND status = 0 LIMIT 5");
  3.  
11. BoJlod9I - 19 Мая, 2012 - 08:15:36 - перейти к сообщению
мне нужно изменить статус в 2 таблицах с отдинаковыми nid = ID
12. Medallion - 19 Мая, 2012 - 08:41:20 - перейти к сообщению
Как-то так, я поместил SQL-запросы в тело цикла, и вроде бы получилось, то что ты хочешь.
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. $result_android_games = mysql_query("SELECT nid FROM node WHERE type = 'android_games' AND status = 0 LIMIT 5");
  4. while($row_android_games = mysql_fetch_assoc($result_android_games))
  5. {
  6. $nids = $row_android_games['nid'];
  7. mysql_query("UPDATE node SET status = 1 WHERE nid='$nids' AND status = 0 LIMIT 5");
  8. mysql_query("UPDATE node_revision SET status = 1 WHERE nid='$nids' AND status = 0 LIMIT 5");
  9. }
  10.  
  11.  
13. BoJlod9I - 19 Мая, 2012 - 08:44:55 - перейти к сообщению
да работает. А будет выполнятся 5 раз до тех пор пока есть значения считанные с БД через SELECT LIMIT да?
14. Medallion - 19 Мая, 2012 - 08:48:54 - перейти к сообщению
Если поставишь в выборке LIMIT 10. Будет выполняться 10 раз.
А в UPDATE LIMIT не к чему, так как всё равно цикл пройдет 10 раз и остановиться, вроде бы так.
15. BoJlod9I - 19 Мая, 2012 - 08:51:30 - перейти к сообщению
я понял спс + тебе =)

 

Powered by ExBB FM 1.0 RC1