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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Из 4 идентичных UPDATE работает только 1

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Vdomah
Отправлено: 30 Октября, 2012 - 21:09:37
Post Id


Новичок


Покинул форум
Сообщений всего: 53
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Есть функция, которая селектит из БД инфу о картинках и выводит ее в виде заполненной формы. Есть 4 поля: description, size, year, src.
CODE (htmlphp):
скопировать код в буфер обмена
  1.         function regPic($genre,$idrow){
  2.                 $id = explode(",",$idrow);
  3.  
  4. // формируем ряд id
  5.                 $idquery = '';
  6.                 for($i=0; $i<count($id); $i++)
  7.                         $idquery .= "id=$id[$i] OR ";
  8.                 $idquery = substr($idquery,0,-4); // отделяем лишний " OR "
  9.  
  10. // получается $idquery = 'id=1 OR id=2 OR id=5 и т.д'
  11.  
  12.                 $sql = "SELECT id,description,size,year,src FROM gallery WHERE genre='".$genre."' AND (".$idquery.")";
  13.  
  14.                 $res = mysql_query($sql);
  15.                 $num = mysql_num_rows($res);
  16.                 if($num<1) echo 'В данному розділі зображеннь не вибрано.<br>';
  17.  
  18. // Вывод формы
  19. for($i=0;$i < $num, $row = mysql_fetch_assoc($res);$i++)
  20. {
  21.        $cur = $i+1;
  22.         echo "Зображення $cur <br>
  23. <table>
  24. <tr><td>Назва: </td><td><input type='text' name='".$row['id']."|description' value='".$row['description']."'></td></tr>
  25. <tr><td>Розмір: </td><td><input type='text' name='".$row['id']."|size' value='".$row['size']."'></td></tr>
  26. <tr><td>Рік: </td><td><input type='text' name='".$row['id']."|year' value='".$row['year']."'></td></tr>
  27. <tr><td>Назва файлу: </td><td><input type='text' name='".$row['id']."|src' value='".$row['src']."'></td></tr>
  28. </table>";
  29. }
  30.         }

В атрибутах name указываю id и имя поля таблицы БД, куда планирую апдейтить инфу: name='".$row['id']."|year'

После изменения текста в полях страничка отправляет постом инфу, которая приходит для обработки в этот скрипт:
CODE (htmlphp):
скопировать код в буфер обмена
  1.         foreach($_POST as $k=>$v)
  2. {
  3.         if($k != 'reg' and $k != 'submit')
  4.         {
  5.                 $data = explode("|",$k);
  6.                 $id = $data[0];
  7.                 $col = $data[1];
  8.                 $val = mysql_real_escape_string($v);
  9.  
  10.                 $sql = "UPDATE gallery SET ".$col."=".$val." WHERE id=".$id;
  11.                 $res = mysql_query($sql);
  12.         }
  13. }

Так вот, ладно бы ничего не работало - долбился бы я дальше над поиском багов, но мистика в том, что из description, size, year, src работает апдейт, но только year!

В чем разница не пойму.

(Отредактировано автором: 30 Октября, 2012 - 21:20:11)

 
 Top
DeepVarvar Супермодератор
Отправлено: 30 Октября, 2012 - 21:44:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




А вы в кавычки заключать не пробовали значения в запросах? Хммм...
 
 Top
Vdomah
Отправлено: 30 Октября, 2012 - 21:58:13
Post Id


Новичок


Покинул форум
Сообщений всего: 53
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Пробовал)) Прикол в том, что и с кавычками и без работает только year!
 
 Top
DeepVarvar Супермодератор
Отправлено: 30 Октября, 2012 - 22:01:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




А вы наверное только year кавычите? Подмигивание
Вас тоже учить дебажить?
В ПМА запрос, который нагенерили, выполняли?
(Добавление)
Что говорит mysql_error ?
(Добавление)
display_errors и error_reporting включены на всю?
 
 Top
Vdomah
Отправлено: 30 Октября, 2012 - 22:03:41
Post Id


Новичок


Покинул форум
Сообщений всего: 53
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Все, врубился.
$sql = "UPDATE gallery SET ".$col."='".$val."' WHERE id=".$id;
дело таки в кавычках. Стыдно)) учимся дальше. спасибо)
 
 Top
DeepVarvar Супермодератор
Отправлено: 30 Октября, 2012 - 22:13:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Ага. Теперь давайте ка избавьтесь от запросов в цикле. Закатив глазки
 
 Top
Vdomah
Отправлено: 30 Октября, 2012 - 22:15:54
Post Id


Новичок


Покинул форум
Сообщений всего: 53
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Цитата:
Ага. Теперь давайте ка избавьтесь от запросов в цикле. Закатив глазки

Это вообще неправильно или просто так не делают?
 
 Top
DeepVarvar Супермодератор
Отправлено: 30 Октября, 2012 - 22:17:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Это не правильно. Так не делают. Не делают потому, что не правильно. Правильно?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB