Как "красиво" занести значения из формы

Что мне сделать если не все значения в форме вводятся (являются обязательными)? Запрос тогда в базу не проходит.
Насколько я понимаю нужно из массива $mas[$index] удалить те поля которые нулевые, но технически это реализовать как не соображу.
Подскажите?

ох и наверетенили же вы.

откуда взялось это: VALUES('','".$values."','unchecked')");

у вас значений вставляется больше чем есть полей.

и нафига делать массив $massiv, у вас уже есть один.
с него берите и кеи и значения.
array_keys
array_values

Добавлено через 10 минут
while (list($index,$value)=each($_POST){
if(is_array($value)){$value = join(',',$value);};
$masiv[$index] = htmlspecialchars($value);
}
а вот тут:
$masiv['какой-то кей']='';
$masiv['какой-то кей2']='unchecked';



$key = join('","',array_keys($masiv));
$values = join('","',array_values($masiv));
$query = mysql_query("INSERT INTO `camp` (".$keys.") VALUES(".$values.")");



примерно так.

УПД. поправочка
$query = mysql_query("INSERT INTO `camp` (\"".$keys."\") VALUES(\"".$values."\")");
 
Итак, имею:
PHP:
			while (list($index,$value)=each($_POST)){
				if(is_array($value)){$value = join(',',$value);};
				$masiv[$index] = htmlspecialchars($value);
			}
			$masiv['id']='';
			$masiv['status']='unchecked';
			$keys = join(',',array_keys($masiv));
			$values = join("','",array_values($masiv));
			$query = mysql_query("INSERT INTO `camp` (".$keys.") VALUES('".$values."')");
Информация в базу теперь уходит, но...
только числовая, а вместо символьной - пустота.
Как это побороть? :)
 
Не кодировка, т.к. и кириллица и латиница присутствуют. Как можно строковые данные в " взять? может в этом дело?
Странно еще то, то на Денвере if(is_array($value)){$value = join(',',$value);}; срабатывает, а на хосте нет.
Как такое может быть?
 
Не кодировка, т.к. и кириллица и латиница присутствуют. Как можно строковые данные в " взять? может в этом дело?
Странно еще то, то на Денвере if(is_array($value)){$value = join(',',$value);}; срабатывает, а на хосте нет.
Как такое может быть?

чутка поправил скрипт


выведите
echo "INSERT INTO `camp` (\"".$keys."\") VALUES(\"".$values."\")";
любопытно поглядеть
 
Тю... Проглядел! Дело в кодировке, латиница залезла (тормознул... сорри...)! Таблица в utf8_general_ci
Думаю может поэтому и на сервере чекбоксы не может преобразовать в строки. Буду рыть или подскажите как внести? :)
 
Тю... Проглядел! Дело в кодировке, латиница залезла (тормознул... сорри...)! Таблица в utf8_general_ci
Думаю может поэтому и на сервере чекбоксы не может преобразовать в строки. Буду рыть или подскажите как внести? :)

при коннекте к базе указывайте
mysql_query("set names='UTF-8');
или
mysql_query("set names='UTF8');

что-то из этого должно помочь.

а вот насчет чекбоксов - вопрос открыт
значения у них - кириллица?
если да, то поможет явное указание кодировки что я привел ранее.
 
Мистика... Такое уже стоит $query = mysql_query("SET NAMES utf8");
А у чекбоксов значения цифры. Так что в базу должно пойти 1,3,4,5 к примеру.
Вот форма:

Вот получающийся запрос к базе:
PHP:
INSERT INTO `camp` (id,camp,confession,country,region,city,description_camp,accommodation,plan_camp,services,infrastructure,food,type_institution,resettlement,season,operatio_time,documentation,cost,facilities,number_of_days,age_of_participants,children_in_the_camp,children_in_the_group,counselors_in_the_group,formation_of_groups,start_camp,end_camp,contact_name,phone,postcode,address,sale_of_permits,phone_sale_of_permits,email,icq,skype,site,additional_information,descriptions_to_photos,video,status)
 VALUES('','Наследие','Протестантская','Россия','Волгоградская область','Волгоград','папвап','впавп','ввавпвапавп','авпавп','впвапвап','Проживание без питания','2','Кемпинг','1,2,3,4','Круглогодичный','пвпыпывпак','4324','1,3,4,5','23','43-87','343','45','2','1,2','2011-10-15','2011-10-18','Савицкая Светлана Федоровна','4354354354','454355','3534545','4354354354','543545543','hggh@dsgdfg.ty','34252535','ghhdfdf','http://thesaviour.ru','выавыав','sfsdgsdgf','http://fdsfdsf.er','unchecked')
Вот как я создаю таблицу:
PHP:
CREATE TABLE
    `camp` (
	`id` SMALLINT(6) UNSIGNED NOT NULL AUTO_INCREMENT,
	`camp` VARCHAR(100) NOT NULL,
	`confession` VARCHAR(14) NOT NULL,
	`country` VARCHAR(10) NOT NULL,
	`region` VARCHAR(100) NOT NULL,
	`city` VARCHAR(100) NOT NULL,
	`description_camp` text NOT NULL,
	`accommodation` text NOT NULL,
	`plan_camp` text NOT NULL,
	`services` text NOT NULL,
	`infrastructure` text NOT NULL,
	`food` VARCHAR(26) NOT NULL,
	`type_institution` VARCHAR(14) NOT NULL,
	`resettlement` VARCHAR(12) NOT NULL,
	`season` VARCHAR(8) NOT NULL,
	`operatio_time` VARCHAR(14) NOT NULL,
	`documentation` text NOT NULL,
	`cost` MEDIUMINT(6) UNSIGNED NOT NULL,
	`facilities` VARCHAR(14) NOT NULL,
	`number_of_days` TINYINT(3) UNSIGNED NOT NULL,
	`age_of_participants` VARCHAR(5) NOT NULL,
	`children_in_the_camp` TINYINT(4) UNSIGNED NOT NULL,
	`children_in_the_group` TINYINT(2) UNSIGNED NOT NULL,
	`counselors_in_the_group` TINYINT(2) UNSIGNED NOT NULL,
	`formation_of_groups` VARCHAR(11) NOT NULL,
	`start_camp` DATE NOT NULL,
	`end_camp` DATE NOT NULL,
	`contact_name` VARCHAR(14) NOT NULL,
	`phone` VARCHAR(14) NOT NULL,
	`postcode` CHAR(6) NOT NULL,
	`address` text NOT NULL,
	`sale_of_permits` text NOT NULL,
	`phone_sale_of_permits` VARCHAR(14) NOT NULL,
	`email`  VARCHAR(100) NOT NULL,
	`icq` TINYINT(8) UNSIGNED,
	`skype` VARCHAR(50),
	`site` VARCHAR(100),
	`additional_information` text,
	`foto_1` VARCHAR(100),
	`foto_2` VARCHAR(100),
	`descriptions_to_photos` text,
	`video` VARCHAR(100),
	`status` ENUM('checked','unchecked') NOT NULL,
	PRIMARY KEY(`id`)
) DEFAULT CHARSET=utf8;
 
1. у сайта какая кодировка?
2. после того как запросите set names=utf8
выведите mysql_error()
что покажет?
иногда 'utf8' надо заключать в кавычки
а иногда писать utf-8
 
1. utf-8
2. Ничего не выводит
О... Сменив сравнение в базе на latin1_swedish_ci все данные у меня занеслись. Как это понимать? Вообще ничего не соображу! Но это только на Денвере, а на сайте проблема с чекбоксами осталась. Пишет Warning: htmlspecialchars() expects parameter 1 to be string, array given in
 
Назад
Сверху