Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Запись в базу и вывод из неё
Покинул форум
Сообщений всего: 6
Дата рег-ции: Июнь 2010
Помог: 0 раз(а)
Доброе время суток. В меня следующая загвоздка.
Мне надо записать в базу даные и потом вывести их ф-й implode.
Даные что передаются с формы а именно с чекбоксов как я понимаю надо записывать тоже через implode, НО так как чекбоксы могуть быть некоторые пустые, а implode все равно считает их и становит разделитель. При выводе он востанавливает эти разделители, а мне они мешают.
Как верно сделать запись в базу, именно построит масив с даными с чекбоксов для обработки implode и записи. (Добавление)
Вопрос по пытался как можно яснее написать. Надеюсь меня поймете.
scarbo
Отправлено: 06 Июня, 2010 - 17:18:56
Новичок
Покинул форум
Сообщений всего: 36
Дата рег-ции: Апр. 2010 Откуда: Россия, Москва
Помог: 0 раз(а)
Наверное проверить массив чекбоксов на TRUE, и если чекбокс FALSE, то удалить его из массива.
Варлес
Отправлено: 06 Июня, 2010 - 18:15:47
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Июнь 2010
Помог: 0 раз(а)
scarbo пишет:
Наверное проверить массив чекбоксов на TRUE, и если чекбокс FALSE, то удалить его из массива.
Это то понятно но если таковых чекбоксов несколько, как их удалить из масива верно, что бы имплод не всчитывал их?
Но как мне сделать что если нет значений $in2 и $in5, к примеру, они не будут использоваться функцией имплоде для разбития?
Напишите кто готовый кусок кода пожалуйста.
scarbo
Отправлено: 06 Июня, 2010 - 18:51:02
Новичок
Покинул форум
Сообщений всего: 36
Дата рег-ции: Апр. 2010 Откуда: Россия, Москва
Помог: 0 раз(а)
in_array проверяет является ли объект массивом и все, а нужно удалить пустые значения
для подходит например вот это - http://php.su/functions/?array-filter
Покинул форум
Сообщений всего: 6
Дата рег-ции: Июнь 2010
Помог: 0 раз(а)
scarbo пишет:
Ну а вообще надо сразу массив заполнять правильно.
А как сам подумай.
Да уже думал. Мои знания не столь большие что бы я мог сам допереть до истины, по этому и попросил как можно конкретнее расписать как сделать нужное мне действие.
Можеш написать мне кусок готового кода для проверки и верности заполнения масива.
Мой моск сейчас взорвется от мыслей, второй день долбу моск как сделать нужное мне.
Желательно с комментами к переменным, что означает та или иная переменная.
scarbo
Отправлено: 06 Июня, 2010 - 19:53:50
Новичок
Покинул форум
Сообщений всего: 36
Дата рег-ции: Апр. 2010 Откуда: Россия, Москва
$mass=array_filter($mass,"isNotNullFiter");//вызываем функцию isNotNullFiter для проверки КАЖДОГО элемента массива на вшивость(в нашем случае чтобы переменная не была равна '', если хочешь сделай проверку на длину строки)
function isNotNullFiter($var)//функция фильтрации, отдает только те эелементы, которые соответсвуют условию
{
return$var!='';//или поставь сюда что-то из mb_string, например - mb_strlen($var) >= 1; или че там у теб проверяется, я не знаю.
Это костыль к твоему коду, изначально правильно заполнить массив я не могу, так как не знаю какие там у тебя чекбоксы, там может лучше JS использовать и отдавать php сразу готовый массив, да и времени нет.
Варлес
Отправлено: 07 Июня, 2010 - 18:47:25
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Июнь 2010
Помог: 0 раз(а)
Что бы не начинать новую тему задам свой вопрос здесь.
Как зделать проверку на наличие той или иной записи в одном поле таблицы? Вот мой код проверки на наличие но ничего не работает.
Но вот в одном поле таблы записано приблизительно так: Шрамы|Тату|Пирсинг
Надеюсь суть вопроса изложил верно.
valenok
Отправлено: 07 Июня, 2010 - 20:58:29
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
WHERE `field` LIKE '%тату%'
----- Truly yours, Sasha.
Варлес
Отправлено: 07 Июня, 2010 - 21:20:43
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Июнь 2010
Помог: 0 раз(а)
valenok пишет:
WHERE `field` LIKE '%тату%'
Это то я знаю. но не писать же километр кода для проверки 5 значений. Да и если таких значений будет не 5 а 15 к примеру, оператором иф оч много проверять.
Отталкиваясь от моего варианта можно как то определить?
Напишите кусок кода для проверки наличия того или иного слова или части слова в поле таблицы. Зарание благодарен.
valenok
Отправлено: 07 Июня, 2010 - 21:27:58
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Либо писать километр
WHERE `field` LIKE '%тату%' OR .. OR ... OR ... OR ... OR .. '%шрамы%'
либо подумать о нормализации базы данных.
О том что это такое, можно прочесть в разделе Уроки PHP на форуме.
Автор Champion
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.