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 :: Update записей по id

 PHP.SU

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


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

> Без описания
alex221
Отправлено: 26 Августа, 2016 - 01:22:37
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Авг. 2016  


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




Всем привет, прошу помощи, задача: редактировать записи.

PHP:
скопировать код в буфер обмена
  1.  
  2. $fields_change = "";
  3. $field_status_stmt = DBC::db()->query($req_read);
  4. while ($field = $field_status_stmt->fetch()) {
  5. $fields_change .= "
  6. <input type='hidden' value='{$field['id']}' name='log_id'><input type='text' id='status_c' name='status_c' value='{$field['cargo_status']}'><br>";
  7. }
  8. if (isset($_POST['status_edit'])) {
  9. $sql = "UPDATE logs SET cargo_status='{$_POST['status_c']}' WHERE id='{$_POST['log_id']}'";
  10. $stmt = DBC::db()->prepare($sql);
  11. $stmt->execute();
  12. $info_message .= "<div class=\"alert alert-success\" role=\"alert\">Статус груза успешно обновлен!</div>";
  13. }
  14. return array(
  15. 'status_fields' => $fields_change
  16. );
  17.  

Все выводится сюда
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <tr>
  3. <td>Статус</td>
  4. <td>
  5. <form method="post">
  6. <?php echo $data['status_fields']; ?>
  7. <input type="submit" name="status_edit" value="Изменить">
  8. </form>
  9. </td>
  10. </tr>
  11.  

Изменяется только самый последний сгенерированный input(ближе всего к submit)...
Можно конечно засунуть в генератор и form и submit, тогда все работает но у каждого поля свой сабмит, который соответственно перезапишет только его, тупо... )
Помогите пожалуйста Улыбка

(Отредактировано автором: 26 Августа, 2016 - 01:23:50)

 
 Top
Faraon-san
Отправлено: 26 Августа, 2016 - 10:55:53
Post Id



Посетитель


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


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




Тут правда транзакцию использовал, если тип базы поддерживает, то все ок.
PHP:
скопировать код в буфер обмена
  1. $fields_change = array();
  2. $info_message = '';
  3. $field_status_stmt = DBC::db()->query($req_read);
  4. while($field = $field_status_stmt->fetch())
  5. {
  6.         $fields_change[] = '<div><input type="hidden" value="'.$field['id'].'" name="log_id[]"><input type="text" name="status_c[]" value="'.$field['cargo_status'].'"></div>';
  7. }
  8. if(isset($_POST['status_edit']))
  9. {
  10.         try{
  11.                 DBC::db()->beginTransaction();
  12.                 foreach($_POST['status_c'] as $index => $status)
  13.                 {
  14.                         $status = DBC::db()->quote($status);
  15.                         $id = DBC::db()->quote($_POST['log_id'][$index]);
  16.                         $sql = "UPDATE `logs` SET `cargo_status` = {$status} WHERE `id` = {$id}";
  17.                         DBC::db()->exec($sql);
  18.                 }
  19.                 DBC::db()->commit();
  20.                 $info_message = '<div class="alert alert-success" role="alert">Статус груза успешно обновлен!</div>';
  21.         }catch(PDOException $e){
  22.                 DBC::db()->rollback();
  23.                 $info_message = '<div class="alert alert-success" role="alert">Неудача!</div>';
  24.         }
  25. }
  26. return array( 'status_fields' => join(PHP_EOL, $fields_change), 'info_message' => $info_message );

(Отредактировано автором: 26 Августа, 2016 - 10:57:10)

 
 Top
alex221
Отправлено: 27 Августа, 2016 - 18:03:06
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Авг. 2016  


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




Спасибо большое!!! Чутка поправил и вообще огонь Улыбка Жаль спасибки не могу дать, мало сообщений)

(Отредактировано автором: 27 Августа, 2016 - 18:19:00)

 
 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