Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проверка полей на заполненость
 
 автор: Anwor   (16.04.2006 в 12:58)   письмо автору
 
 

Народ, есть такой ситуэйшн. В форме куча полей, по которым потом формируется здоровый запрос к базе. Некоторые из этих полей могут быть незаполненными. Типы данных соответствующих полям колонок в базе тоже совершенно разные.
Нужно: проверить все поля на статус "заполненности", и если поле пустое, присвоить ему строковое значение "null".
Проблема: есть код:

<?
foreach($_POST as $var) {
if (empty(
$var)) {
$var='null';
}
}
?>

который, по идее, должен проверять все исходящие значения полей и, в случае незаполненности, присваивать им null. Но он НЕ ДЕЛАЕТ ЭТОГО! Я не понимаю, в чем же загвоздка, может, суперглобальные массивы нельзя прогонять по foreach?!!

З.Ы.: в результате в распечатанном запросе вижу:

insert into table values (null, "abc", "def", 2, 45, "blablabla", , 123456)

т.е. вместо поля, где должно быть null, идет пропущенное значение, что приводит, естессно, к краху запроса... (((

   
 
 автор: AKiRA   (16.04.2006 в 13:09)   письмо автору
 
   для: Anwor   (16.04.2006 в 12:58)
 

правельно, вы присвоили переменной var значение null, в следствие чего $_POST не меняется.

Этот код будет более правельным.

<? 
foreach($_POST as $key=>$var) { 
   if (empty(
$var)) { 
      
$_POST[$key]='null'
   } 

?>


Кстати, вы можете в свойствах таблицы указать какие именно данные могут быть пустыми, тогда их вообще можно будет не указывать в запросе.

   
 
 автор: Anwor   (16.04.2006 в 13:23)   письмо автору
 
   для: AKiRA   (16.04.2006 в 13:09)
 

Во, спасибо, разрулили!
А по поводу последнего абзаца: подразумевается параметр not null? Если да, то у меня вся база уже по этому принципу оптимизирована, но фишка в том, что если не указывать значения вообще, то надо использовать сложный запрос INSERT, т.е. сначала перебрать по пальцам все имена столбцов, в которые всё заносим, а потом все значения, которые заносим. Как вариант - возможно, но в моей форме и так слишком много полей...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования