Обновить / вставить только столбец таблицы базы данных в PHP - PullRequest
1 голос
/ 14 февраля 2020

I Таблица WordPress с именем wp_fes_vendors, в общей сложности 12 столбцов.

Из этих 12 столбцов я хочу обновить только данные имени столбца запросов

Данные, которые я получаю для этого столбца, взяты из пользовательской формы в бэкэнде, хранящейся в $_POST['getval']

Вот код, который я пробовал

 if (!empty(isset($_POST['getval'])))
    {       
            global $wpdb;
            $table_name=$wpdb->prefix.'fes_vendors';

            $data_array = array(

            'requests' => $_POST['getval']


            );

            $data_where = array('requests' => $_POST['getval']);

            $wpdb->update($table_name,$data_array,$data_where);


    }

Html

<form id="myForm" name="myform" action="" method="POST" style="padding:20px;">
  <label> Select if this Vendor wishes to receive customer requests or not: </label>
  <select name="getval" id="brandSel" size="1">
      <option selected="selected" disbaled value="">-- Select status --</option>
      <option value="1">Enable</option>
      <option value="0">Disable</option>
  </select>

  <?php submit_button('submit'); ?>
</form>

Я пробовал несколько раз, но данные не сохраняются / не обновляются. Вот изображение дБ

enter image description here

1 Ответ

2 голосов
/ 14 февраля 2020

Ваше состояние не имеет смысла.

Допустим, пользователь выбрал enable -> $_POST['getval'] = 1;

Ваш запрос будет:

Обновление {таблица} SET запросов = 1 WHERE запросов = 1

  • Поскольку ни одна из записей не имеет значения 1 в столбце запросов, это условие никогда не будет существовать, и обновление выиграет ' это не произойдет.
  • Даже если бы были строки с «запросы = 1», обновление не изменит их, поскольку их значение уже 1.
  • То же самое относится и к случаю, когда пользователь выбирает «отключить» (0)

Я полагаю, вы должны обновить свое состояние до указанной c строки. Вы можете сделать это, добавив скрытый ввод в форму со строкой c, которую вы хотите sh обновить. И обновите ваше состояние так, чтобы оно было примерно таким:

"id" => $_POST['row_id']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...