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 :: Многострочное редактирование

 PHP.SU

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


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

> Описание: или как то так
Ahiipsa
Отправлено: 10 Ноября, 2009 - 13:55:58
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Нояб. 2009  


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




Пишу админку для инетмага столкнулся с такой проблемой:

Значиться так, вывожу на страничке все товары определённой категории в форму - тоесть каждый товар можно редактировать, после нужен код который бы принял данные из этой формы и внёс изменения в базе данных.

Если на пальцах, нужна страница, на которой можно редактировать сразу несколько позиций.

по гуглил, ничо не нашёл, даже не знаю как это обозвать правильно.

скрин с похожей системки в прикреплённом файле.
Прикреплено изображение (Нажмите для увеличения)
mp.jpg
 
 Top
Вездеход
Отправлено: 10 Ноября, 2009 - 14:11:15
Post Id



Частый посетитель


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


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




погуглил - слитно пишется =)


по теме - попробуйте создать каждой строке свою форму.
так как у каждого товара есть свой идишнег - править соответственно можно будет на основе него.
а какое действие вы выбрали - удаление или изменение - это уже будет зависить от кнопки сабмита, которую вы выбрали (имя задайте каждой)


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
Ahiipsa
Отправлено: 10 Ноября, 2009 - 15:00:35
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Нояб. 2009  


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




Вездеход пишет:
погуглил - слитно пишется =)


А у вас на аве пиксель выгорел Язычок

Вездеход пишет:
по теме - попробуйте создать каждой строке свою форму.
так как у каждого товара есть свой идишнег - править соответственно можно будет на основе него.


PHP:
скопировать код в буфер обмена
  1.  
  2. ...
  3. <tr>
  4.  <td><input name="item_6185[name]" value="Товар номер 6185" type="text" /> </td>
  5.  <td><input name="item_6185[price]" value="3570.00" type="text" /> </td>
  6. </tr>
  7. <tr>
  8.  <td><input name="item_6186[name]" value="Товар номер 6186" type="text" /> </td>
  9.  <td><input name="item_6186[price]" value="3570.00" type="text" /> </td>
  10. </tr>
  11. <tr>
  12. ...
  13.  


форма отдаёт это дело в php как массив

PHP:
скопировать код в буфер обмена
  1. $item_6165 = $_POST['item_6165'];
  2. //Массив $item_6165 имеет вид
  3. $item_6165 = array ('name' => 'Товар номер 6185', 'price' => '3570.00');


Как бы грамотней вытянуть их из формы
 
 Top
Мелкий Супермодератор
Отправлено: 10 Ноября, 2009 - 15:15:46
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




ИМХО, лучше наоборот сделать:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <td><input name="name[6186]" value="Товар номер 6186" type="text" /> </td><td><input name="price[6186]" value="3570.00" type="text" /> </td>

Тогда по ключу-номеру товара сразу и получаете новую цену и чего-там-ещё-надо аналогично

При сохранении циклом пробегаете и обновляете в БД записи.


-----
PostgreSQL DBA
 
 Top
JustUserR
Отправлено: 10 Ноября, 2009 - 15:19:34
Post Id



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


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


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




Да можно с помощью AJAX приспособить - каждая строчка имеет уникальный код и при изменении данных они в фоновом режиме отправляются обработчику


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Ahiipsa
Отправлено: 10 Ноября, 2009 - 16:02:16
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Нояб. 2009  


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




Мелкий пишет:
ИМХО, лучше наоборот сделать:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <td><input name="name[6186]" value="Товар номер 6186" type="text" /> </td><td><input name="price[6186]" value="3570.00" type="text" /> </td>

Тогда по ключу-номеру товара сразу и получаете новую цену и чего-там-ещё-надо аналогично

При сохранении циклом пробегаете и обновляете в БД записи.


В итоге получается несколько массивов name, price...

PHP:
скопировать код в буфер обмена
  1. $name = array ('1234' => 'товар номер 1234', '5678' => 'товар номер 5678');
  2. $price = array ('1234' => '300р', '5678' => '200р');
  3.  
  4. //Сортируем массивы по возрастанию ключей, так сказать для надёжности
  5. ksort($name);
  6. ksort($price);
  7.  
  8. foreach($name as $name_key=>$name_val){
  9.   mysql_query('UPDATE products SET products.name=$name_val, products.price=$price[$name_key] WHERE products.id=$name_key');
  10. }


не ужели допёрло... код пока не пробовал, жду что скажите Улыбка

(Отредактировано автором: 10 Ноября, 2009 - 17:31:59)

 
 Top
Мелкий Супермодератор
Отправлено: 10 Ноября, 2009 - 18:13:01
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Запрос в одинарный кавычках и без конкатенации строк. Какой оригинальный вариант. А зачем вам в бд вместо всех данный перечисление имён переменных?
Сделайте echo строки запроса и посмотрите, что не так Улыбка

PS: подскажу: в одинарных кавычках значения переменный не подставляются.


-----
PostgreSQL DBA
 
 Top
Ahiipsa
Отправлено: 12 Ноября, 2009 - 10:48:19
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Нояб. 2009  


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




в итоге получилось так

HTML
PHP:
скопировать код в буфер обмена
  1. <table>
  2. <tr>
  3. <td><img src="/files/items_p/noimage.gif" /></td>
  4. <td><input type="hidden" name="id[6851]" value="6851" />6851</td>
  5. <td><input name="name[6851]" value="Товар номер 2" size="50" type="text" /></td>
  6. <td><input name="price[6851]" value="1500.00" type="text" /></td>
  7. </tr>
  8. <tr>
  9.  
  10. <td><img src="/files/items_p/noimage.gif" /></td>
  11. <td><input type="hidden" name="id[6852]" value="6852" />6852</td>
  12. <td><input name="name[6852]" value="Товар номер 3" size="50" type="text" /></td>
  13. <td><input name="price[6852]" value="2000.00" type="text" /></td>
  14. </tr>
  15. <tr>
  16. <td><img src="/files/items_p/noimage.gif" /></td>
  17. <td><input type="hidden" name="id[6853]" value="6853" />6853</td>
  18. <td><input name="name[6853]" value="Товар номер 1" size="50" type="text" /></td>
  19. <td><input name="price[6853]" value="1300.00" type="text" /></td>
  20. </tr>
  21. </table>
  22.  

PHP код
PHP:
скопировать код в буфер обмена
  1. if (isset($_GET['savebutton'])){
  2.  if (isset($_GET['id']))        {$ret['m_id']   = $_GET['id']; ksort($ret['m_id']);}
  3.  if (isset($_GET['name']))      {$ret['m_name'] = $_GET['name']; ksort($ret['m_name']);}
  4.  if (isset($_GET['price']))     {$ret['m_price']= $_GET['price']; ksort($ret['m_price']);}
  5.                        
  6. foreach ($ret['m_id'] as $id_key => $id_val){
  7.  mysql_query("UPDATE andor_catalogitem SET name=\"".$ret['m_name'][$id_key]."\", price=\"".$ret['m_price'][$id_key]."\" WHERE id=\"".$id_key."\"");
  8. echo mysql_errno() . ": " . mysql_error() . "\n";
  9.   }
  10. }
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB