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]   

> Без описания
kirill1
Отправлено: 31 Мая, 2013 - 02:17:50
Post Id


Новичок


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


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




И еще одна проблема. У меня есть кнопка которая обновляет информацию в таблице.


PHP:
скопировать код в буфер обмена
  1.  
  2. <form method="post" action="2.php">
  3.  
  4. :   <input type="int" name="ID" />
  5. ФИО: <input type="text" name="FIO" />
  6. Степень: <input type="text" name="stepen" />
  7. Должность: <input type="text" name="dolgnost" />
  8. Методическое пособие: <input type="text"  name="posobie" />
  9. Публикации: <input  type="text"  name="publik"/>
  10. Телефон: <input type="text" name="telephon" />
  11. Дипломники: <input type="text" name="Diplomnik" />
  12. Курсовые: <input type="text" name="Kursovie" />
  13. <input type="submit" name="ok" value="обновить" />
  14. </form>
  15.  



Допустим таблица уже заполнена. Мне надо обновить только колонку "телефон". Но если я обновлю только телефон все остальные колонки обнуляться. Поэтому что бы обновить только "телефон" приходиться вводить все колонки заново.

Подскажите пожалуйста как можно этого избежать ?


PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. include('db.php');
  4.  
  5. $ID = $_POST['ID'];
  6. $FIO = $_POST['FIO'];
  7. $stepen = $_POST['stepen'];
  8. $dolgnost = $_POST['dolgnost'];
  9. $posobie = $_POST['posobie'];
  10. $publik = $_POST['publik'];
  11. $telephon = $_POST['telephon'];
  12. $Diplomnik = $_POST['Diplomnik'];
  13. $Kursovie = $_POST['Kursovie'];
  14. if (isset($_POST['ok']))
  15. {
  16. $query = mysql_query ("UPDATE tutors SET FIO='$FIO', stepen='$stepen', dolgnost='$dolgnost', posobie='$posobie',  publik = '$publik', telephon ='$telephon', Diplomnik='$Diplomnik', Kursovie='$Kursovie' WHERE id='$ID' ") ;
  17. echo "изменено";
  18. }
  19.  
  20. ?>
  21.  
  22.  
 
 Top
Ezi
Отправлено: 31 Мая, 2013 - 02:37:10
Post Id



Частый гость


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


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




ИМХО вы в форму только телефон вводите, а в запросе все обновляете.
Либо вынесите это в отдельный запрос, либо проверяйте не пуссты ли поля.


-----
Хочешь жить - умей вертеться
 
 Top
kirill1
Отправлено: 31 Мая, 2013 - 02:47:31
Post Id


Новичок


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


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




Ezi пишет:
ИМХО вы в форму только телефон вводите, а в запросе все обновляете.
Либо вынесите это в отдельный запрос, либо проверяйте не пуссты ли поля.



Да, я знаю. Но не понимаю как сделать запрос, может там надо дописать "если поле пустое делай то то ". Не могли бы показать на примере ?
 
 Top
Ezi
Отправлено: 31 Мая, 2013 - 02:55:07
Post Id



Частый гость


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


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




Можно сначала получить инфо о студенте по его ID, а затем, если параметры в $_POST отсутствуют, то присвоить эти же значения.

PHP:
скопировать код в буфер обмена
  1. $student;//инфо о студенте
  2. $FIO = (isset($_POST['FIO']))?isset($_POST['FIO'] : $student['FIO'];// Если установлен параметр ФИО в переменной $_POST то используем её, иначе используем прошлые данные.
  3.  

И так для всех...
(Добавление)
Ах да, раз вы на прямую с БД работаете, то не забывайте фильтровать, что идет.
Подробнее читайте про mysql injection.

(Отредактировано автором: 31 Мая, 2013 - 02:55:38)



-----
Хочешь жить - умей вертеться
 
 Top
kirill1
Отправлено: 31 Мая, 2013 - 03:01:50
Post Id


Новичок


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


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




Ezi пишет:
Можно сначала получить инфо о студенте по его ID, а затем, если параметры в $_POST отсутствуют, то присвоить эти же значения.

PHP:
скопировать код в буфер обмена
  1. $student;//инфо о студенте
  2. $FIO = (isset($_POST['FIO']))?isset($_POST['FIO'] : $student['FIO'];// Если установлен параметр ФИО в переменной $_POST то используем её, иначе используем прошлые данные.
  3.  

И так для всех...
(Добавление)
Ах да, раз вы на прямую с БД работаете, то не забывайте фильтровать, что идет.
Подробнее читайте про mysql injection.


еще раз спасибо, буду разбираться.
 
 Top
LIME
Отправлено: 31 Мая, 2013 - 03:06:17
Post Id


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


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


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




mysql injection а это что страшный мутант?
мгбыть sql injection?
 
 Top
Ezi
Отправлено: 31 Мая, 2013 - 03:08:55
Post Id



Частый гость


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


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




LIME, ахахах. Я спать не лег ещё, а времени 6, вот и несу ересь Радость
Хотя все логично. Ведь когда sql инъекции раскуриваются, то тип БД имеет значение.


-----
Хочешь жить - умей вертеться
 
 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