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, обновление нескольких полей одновременно

 PHP.SU

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


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

> Описание: Вопрос об обновлениее одновременно несколько полей. Как достичь такого результата.
Айрат
Отправлено: 06 Мая, 2012 - 22:29:14
Post Id


Новичок


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


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




Всем добрый вечер. Скорее всего мой вопрос покажется вам слишком простым, но тем не менее второй день не могу решить поставленную задачу. Постараюсь расписать подробнее. Очень буду благодарен помощи и смогу пойти спать наконец.
В общем надо обновить несколько полей одновременно.
файл test3.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include "block/bd.php";
  3. $result = mysql_query("SELECT * FROM primer");
  4. $myrow = mysql_fetch_array($result);?>
  5. <form name='form1' method='POST' action='update.php'>
  6. <?PHP
  7. do
  8. {      
  9. printf ("<label>Айди<br>
  10. <input name='id' title='id' type='text' value='%s'>
  11. </label>
  12. <br>
  13. <label>Имя<br>
  14. <input name='title' title='title' type='text' value='%s'>
  15. </label>
  16. <label>Фамилия<br>
  17. <input name='opisanie' title='opisanie' type='text' value='%s'>
  18. </label><br><br><br><br>", $myrow ['id'], $myrow ['title'], $myrow ['opisanie']);
  19. }
  20. while ($myrow = mysql_fetch_array ($result));
  21. ?>
  22. <input type='submit' value='ОК' name='submit' title='submit'>
  23. </form>

Вот файл который занимается обновлением. update.php
PHP:
скопировать код в буфер обмена
  1. <?PHP include "block/bd.php";
  2. if (isset($_POST['id'])) {$id = $_POST['id'];}
  3. if (isset($_POST['title'])) {$title = $_POST['title'];}
  4. if (isset($_POST['opisanie'])) {$opisanie = $_POST['opisanie'];}
  5. $result2 = mysql_query ("UPDATE primer SET  title='$title', opisanie='$opisanie' WHERE id=$id");
  6. ?>

И сама база данных естественно.
CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE IF NOT EXISTS `primer` (
  2.   `id` int(5) NOT NULL AUTO_INCREMENT,
  3.   `title` varchar(255) NOT NULL,
  4.   `opisanie` varchar(255) NOT NULL,
  5.   PRIMARY KEY (`id`)
  6. ) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=542995 ;
  7.  
  8. --
  9. -- Dumping data for table `primer`
  10. --
  11.  
  12. INSERT INTO `primer` (`id`, `title`, `opisanie`) VALUES
  13. (1, 'Олег', 'Олегович'),
  14. (2, 'Андрей', 'Андреевич'),
  15. (3, 'Алексей', 'Алексеевич'),
  16. (4, 'Евгений', 'Евгеньевич');

Как сделать так, чтобы после редактирования любой данной (Кроме айди) при нажатии на кнопку все обновилось? В приведенном примере обновляется только последний ID
 
 Top
ams
Отправлено: 06 Мая, 2012 - 22:38:34
Post Id



Посетитель


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


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




В файле test3.php, инпутам сделай всем имена массивом:
<input name='id[]' title='id' type='text' value='%s'>

В update.php делай цикл по массиву пост

PHP:
скопировать код в буфер обмена
  1.  
  2. include "block/bd.php";
  3.  
  4. foreach($_POST as $v) {
  5. $sql = "UPDATE primer SET
  6. title = '$v[title]",
  7. opisanie = '$v[opisanie]
  8. WHERE id = $v[id]';
  9. mysql_query ($sql);
  10. }
  11.  
  12.  
  13.  

(Добавление)
фффф!1

PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($_POST as $v) {
  3.      $sql = "UPDATE primer SET title = '$v[title]', opisanie = '$v[opisanie]' WHERE id = $v[id]';
  4.     mysql_query ($sql);
  5. }
  6.  
  7.  

(Отредактировано автором: 06 Мая, 2012 - 22:39:31)

 
 Top
Айрат
Отправлено: 06 Мая, 2012 - 22:46:09
Post Id


Новичок


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


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




Вообще ничего не понял. Если не трудно можешь расписать все тут как все должно быть для двух файлов
 
 Top
ams
Отправлено: 06 Мая, 2012 - 22:50:50
Post Id



Посетитель


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. include "block/bd.php";
  5.  
  6. $result = mysql_query("SELECT * FROM primer");
  7.  
  8. $myrow = mysql_fetch_array($result);?>
  9.  
  10. <form name='form1' method='POST' action='update.php'>
  11.  
  12. <?PHP
  13.  
  14. do
  15.  
  16. {      
  17.  
  18. printf ("<label>Айди<br>
  19.  
  20. <input name='id[]' title='id' type='text' value='%s'>
  21.  
  22. </label>
  23.  
  24. <br>
  25.  
  26. <label>Имя<br>
  27.  
  28. <input name='title[]' title='title' type='text' value='%s'>
  29.  
  30. </label>
  31.  
  32. <label>Фамилия<br>
  33.  
  34. <input name='opisanie[]' title='opisanie' type='text' value='%s'>
  35.  
  36. </label><br><br><br><br>", $myrow ['id'], $myrow ['title'], $myrow ['opisanie']);
  37.  
  38. }
  39.  
  40. while ($myrow = mysql_fetch_array ($result));
  41.  
  42. ?>
  43.  
  44. <input type='submit' value='ОК' name='submit' title='submit'>
  45.  
  46. </form>
  47.  


PHP:
скопировать код в буфер обмена
  1.  
  2. include "block/bd.php";
  3.  
  4. foreach($_POST as $v) {
  5.  
  6.      $sql = "UPDATE primer SET title = '$v[title]', opisanie = '$v[opisanie]' WHERE id = $v[id]';
  7.  
  8.     mysql_query ($sql);
  9.  
  10. }
  11.  
  12.  
 
 Top
Айрат
Отправлено: 06 Мая, 2012 - 23:02:16
Post Id


Новичок


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


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




Здесь ошибку показал((((((( Огорчение
(Добавление)
исправил вот так
PHP:
скопировать код в буфер обмена
  1.  
  2.      $sql = "UPDATE primer SET title = '$v[title]', opisanie = '$v[opisanie]' WHERE id = $v[id]";
  3.  
  4.  
  5.  
  6.      mysql_query ($sql);

Ошибки нет, но не обновялет
 
 Top
ams
Отправлено: 07 Мая, 2012 - 14:32:13
Post Id



Посетитель


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


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




mysql_query ($sql) or die(mysql_error());

Что выдает?
(Добавление)
foreach($_POST as $v) {

$sql = "UPDATE primer SET title = '$v[title]', opisanie = '$v[opisanie]' WHERE id = $v[id]';

mysql_query ($sql);

}

Убери Улыбка

PHP:
скопировать код в буфер обмена
  1.  
  2. $c = count($_POST['id']);
  3.  
  4. for($i = 0; $i < $c; $i++) {
  5.     $sql = "UPDATE primer SET title = '$_POST[title][$i]', opisanie = '$_POST[opisanie][$i]' WHERE id = $_POST[id][$i]';
  6.    mysql_query ($sql) or die( mysql_error() );
  7.  
  8. }
  9.  
  10.  
 
 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