Хранить массив POST в MySQL без пустых значений? - PullRequest
1 голос
/ 15 июня 2011

Вот тот, который меня озадачил.

Я храню массив $ _POST в базе данных mysql. Я также использую JavaScript для динамического создания полей ввода в моей форме, но если поле ввода пусто, оно все равно вставляется в базу данных (очевидно).

Есть ли способ пройти через массив POST и отфильтровать эти пустые значения?

EDIT:

Использование WordPress, но та же идея:

<?php 
foreach($_POST['eirepanel_inline_ads_options_name'] as $post_eirepanel_inline_ads_options_name):
    if(empty($post_eirepanel_inline_ads_options_name)): 
       echo 'empty';
    else: 
        update_option('eirepanel_inline_ads_options', $_POST);
        $eirepanel_inline_ads_options = get_option('eirepanel_inline_ads_options');
    endif; 
endforeach;
?>

Ответы [ 6 ]

2 голосов
/ 15 июня 2011

Вы сказали, что вам нужны только элементы массива $ _POST, которые не являются пустой строкой:

   $nonEmpty = array_filter($_POST, function($value) {return $value!=='';} );

Вы написали, что вы добавляете поля динамически. Я не знаю, используете ли вы нотацию PHP для массивов в полях формы . Если так, то с этим дополнительным типом данных дела обстоят немного иначе.

1 голос
/ 15 июня 2011

Есть несколько.Однако остерегайтесь элементов управления, которые не всегда отправляют значения.Вы не обязательно получите значение для флажка, если оно не отмечено

0 голосов
/ 15 июня 2011
function filter_post($value)
{ 
  if ($value !='')
  {
    return $value;
  }

}
$new_array=array_filter($_POST,'filter_post');
0 голосов
/ 15 июня 2011

Вы можете просто сделать пустой чек на это.

ОТКАЗ Это простой пример. Не проверяет, является ли $value массивом (например, флажок или ввод файла). Работает только для входов.

$data = array();
foreach ($_POST as $key => $value) {
   if (empty($value)) continue;
   $data[$key] = $value;
}
//save $data to DB
0 голосов
/ 15 июня 2011

Вы можете сделать что-то подобное:

foreach ($_POST as $key => $value)
{
    if (empty($value))
    {
        unset($_POST[$key]);
    }
}
0 голосов
/ 15 июня 2011

Проверьте значение $ _POST перед вставкой чего-либо в базу данных

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