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 :: Запись в базу и вывод из неё

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Нуждаюсь в использовании ф-й explode и implode
Варлес
Отправлено: 06 Июня, 2010 - 02:48:14
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




Доброе время суток. В меня следующая загвоздка.
Мне надо записать в базу даные и потом вывести их ф-й implode.
Даные что передаются с формы а именно с чекбоксов как я понимаю надо записывать тоже через implode, НО так как чекбоксы могуть быть некоторые пустые, а implode все равно считает их и становит разделитель. При выводе он востанавливает эти разделители, а мне они мешают.

Как верно сделать запись в базу, именно построит масив с даными с чекбоксов для обработки implode и записи.
(Добавление)
Вопрос по пытался как можно яснее написать. Надеюсь меня поймете.
 
 Top
scarbo
Отправлено: 06 Июня, 2010 - 17:18:56
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Апр. 2010  
Откуда: Россия, Москва


Помог: 0 раз(а)




Наверное проверить массив чекбоксов на TRUE, и если чекбокс FALSE, то удалить его из массива.
 
 Top
Варлес
Отправлено: 06 Июня, 2010 - 18:15:47
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




scarbo пишет:
Наверное проверить массив чекбоксов на TRUE, и если чекбокс FALSE, то удалить его из массива.

Это то понятно но если таковых чекбоксов несколько, как их удалить из масива верно, что бы имплод не всчитывал их?

Вот мой код приема, проверки и обработки:
PHP:
скопировать код в буфер обмена
  1.  
  2. $in1 = isset($_POST['in1']) ? check(mb_substr($_POST['in1'], 0, 50)) : '';
  3. $mass = array ("$in1", "$in2", "$in3", "$in4", "$in5");
  4. $tobase = implode("|", $mass);
  5.  


Кто по опытней может подсказать решение этого вопроса?
 
 Top
scarbo
Отправлено: 06 Июня, 2010 - 18:25:58
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Апр. 2010  
Откуда: Россия, Москва


Помог: 0 раз(а)




Цитата:
Кто по опытней может подсказать решение этого вопроса?

Найди нужную - http://php.su/functions/?cat=array
 
 Top
Варлес
Отправлено: 06 Июня, 2010 - 18:39:52
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




scarbo пишет:
Найди нужную - http://php.su/functions/?cat=array


Думаю мне нужно проверить функцией in_array
Но подскажите как мне это сделать. Желательно готовым кодом.

PHP:
скопировать код в буфер обмена
  1.  
  2. $in1 = isset($_POST['in1']) ? check(mb_substr($_POST['in1'], 0, 50)) : '';//Принимаем и обрабаотываем
  3. $mass = array ("$in1", "$in2", "$in3", "$in4", "$in5");//Масив
  4. $tobase = implode("|", $mass);//Разбитие масива.
  5.  

Но как мне сделать что если нет значений $in2 и $in5, к примеру, они не будут использоваться функцией имплоде для разбития?
Напишите кто готовый кусок кода пожалуйста.
 
 Top
scarbo
Отправлено: 06 Июня, 2010 - 18:51:02
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Апр. 2010  
Откуда: Россия, Москва


Помог: 0 раз(а)




in_array проверяет является ли объект массивом и все, а нужно удалить пустые значения
для подходит например вот это - http://php.su/functions/?array-filter
PHP:
скопировать код в буфер обмена
  1. $mass = array_filter($mass, "isNotNullFiter");
  2. function isNotNullFiter($var){
  3. return $var!='';//или поставь сюда что-то из mb_string
  4. }

Ну а вообще надо сразу массив заполнять правильно.
А как сам подумай.

(Отредактировано автором: 06 Июня, 2010 - 18:55:01)

 
 Top
Варлес
Отправлено: 06 Июня, 2010 - 19:03:34
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




scarbo пишет:
Ну а вообще надо сразу массив заполнять правильно.
А как сам подумай.

Да уже думал. Мои знания не столь большие что бы я мог сам допереть до истины, по этому и попросил как можно конкретнее расписать как сделать нужное мне действие.

Можеш написать мне кусок готового кода для проверки и верности заполнения масива.
Мой моск сейчас взорвется от мыслей, второй день долбу моск как сделать нужное мне.
Желательно с комментами к переменным, что означает та или иная переменная.
 
 Top
scarbo
Отправлено: 06 Июня, 2010 - 19:53:50
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Апр. 2010  
Откуда: Россия, Москва


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $in1 = isset($_POST['in1']) ? check(mb_substr($_POST['in1'], 0, 50)) : ''; //Принимаем и обрабаотываем
  4. $mass = array("$in1", "$in2", "$in3", "$in4", "$in5"); //Массив
  5. $mass = array_filter($mass, "isNotNullFiter");//вызываем функцию isNotNullFiter для проверки КАЖДОГО элемента массива на вшивость(в нашем случае чтобы переменная не была равна '', если хочешь сделай проверку на длину строки)
  6. function isNotNullFiter($var)//функция фильтрации, отдает только те эелементы, которые соответсвуют условию
  7. {
  8.     return $var != ''; //или поставь сюда что-то из mb_string, например - mb_strlen($var) >= 1; или че там у теб проверяется, я не знаю.
  9. }
  10. $tobase = implode("|", $mass); //Разбитие массива.
  11.  
  12. ?>

Это костыль к твоему коду, изначально правильно заполнить массив я не могу, так как не знаю какие там у тебя чекбоксы, там может лучше JS использовать и отдавать php сразу готовый массив, да и времени нет.
 
 Top
Варлес
Отправлено: 07 Июня, 2010 - 18:47:25
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




Что бы не начинать новую тему задам свой вопрос здесь.
Как зделать проверку на наличие той или иной записи в одном поле таблицы? Вот мой код проверки на наличие но ничего не работает.
PHP:
скопировать код в буфер обмена
  1.  
  2. echo '&nbsp;<input name="si1" type="checkbox" value="Шрамы" ' . ($data['pole']=="Шрамы" ? 'checked="checked"' : '') . ' />&nbsp;Шрамы';
  3.  


Но вот в одном поле таблы записано приблизительно так:
Шрамы|Тату|Пирсинг

Надеюсь суть вопроса изложил верно.
 
 Top
valenok
Отправлено: 07 Июня, 2010 - 20:58:29
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




WHERE `field` LIKE '%тату%'


-----
Truly yours, Sasha.
 
My status
 Top
Варлес
Отправлено: 07 Июня, 2010 - 21:20:43
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




valenok пишет:
WHERE `field` LIKE '%тату%'

Это то я знаю. но не писать же километр кода для проверки 5 значений. Да и если таких значений будет не 5 а 15 к примеру, оператором иф оч много проверять.

Отталкиваясь от моего варианта можно как то определить?

PHP:
скопировать код в буфер обмена
  1. echo '&nbsp;<input name="si1" type="checkbox" value="Шрамы" ' . ($data['pole']=="Шрамы" ? 'checked="checked"' : '') . ' />&nbsp;Шрамы';


таким вариантом не получится же?

PHP:
скопировать код в буфер обмена
  1. echo '&nbsp;<input name="si1" type="checkbox" value="Шрамы" ' . ($data['pole']=="[b]%[/b]Шрамы[b]%[/b]" ? 'checked="checked"' : '') . ' />&nbsp;Шрамы';


Напишите кусок кода для проверки наличия того или иного слова или части слова в поле таблицы. Зарание благодарен.
 
 Top
valenok
Отправлено: 07 Июня, 2010 - 21:27:58
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Либо писать километр
WHERE `field` LIKE '%тату%' OR .. OR ... OR ... OR ... OR .. '%шрамы%'
либо подумать о нормализации базы данных.
О том что это такое, можно прочесть в разделе Уроки PHP на форуме.
Автор Champion


-----
Truly yours, Sasha.
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB