кнопка отправки форм php - PullRequest
0 голосов
/ 04 марта 2010

Я относительно новичок в php.У меня следующая проблема.Предположим, у меня есть страница с

  • формой с двумя полями x, y и двумя кнопками: submit и clear;
  • таблица, которая показывает записи в БД для x, y с двумякнопки, редактировать и удалять

, когда я ввожу значения в поля формы и нажимаю кнопку «отправить», вставляет данные в БД;данные затем отображаются в таблице ниже;

когда я нажимаю кнопку edit на таблице, форма заполняется данными из выбранной записи.Теперь я хочу отправить, чтобы обновить запись, а не просто вставить новую.

Как мне поступить?

Спасибо !!!

Giuseppe

Ответы [ 3 ]

1 голос
/ 04 марта 2010

Вы должны добавить в форму скрытое поле, чтобы дифференцировать обновления и вставить.

Хороший способ сделать это, например, поместить в свой первичный ключ поле

<input name="id" type="hidden" value="<?= $row['id']"/>

после PHP кода вы можете сделать что-то вроде этого

if(isset($_POST['id']) && $_POST['id'] != 0){
 // this is an update 
 $sql = "UPDATE ...."
 ...
} else {
 $sql = "INSERt ...";
 ...
}

для формы вставки, просто не помещайте скрытый ввод или установите значение 0

0 голосов
/ 04 марта 2010
  1. Добавление идентификатора в ваши строки: столбец идентификатора в базе данных (предпочтительно, UNSIGNED INTEGER), который также находится в таблице (вы можете использовать его как строку запроса в URL, который вы используете для редактирования записи), и скрытый ввод в виде
  2. Если вы добавляете запись, убедитесь, что для скрытого ввода задано значение null или ноль (или какое-либо другое значение, которое не может быть допустимым идентификатором)
  3. Всякий раз, когда форма отправляется, проверьте, чтобы идентификатор был нулевым или что-то еще
  4. Если идентификатор нулевой, добавьте, как вы делали раньше
  5. Если идентификатор не равен NULL, обновите элемент с помощью идентификатора из ввода
0 голосов
/ 04 марта 2010

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

// sql query
update tablename set fieldname = 'fieldvalue'......... and son

Вы должны показать свой код для получения точного ответа.

...