|
|
|
| Есть код добавляющий название(titela) в бд
<?
if (isset($_POST['titla'])) {$titla = $_POST['titla']; if ($titla == '') {unset($titla);}}
if (isset($titla))
{
$date = date("Y-m-d");
$result = mysql_query ("INSERT INTO date (title,date) VALUES ('$titla','$date')");
if ($result == 'true') {echo "";}
else {echo "";}
}
else
{
echo "";
}
?>
|
помогите разбить это название(titela) на слова запятыми и что бы это записалось бы в бд в поле meta_k | |
|
|
|
|
|
|
|
для: korifan
(05.06.2014 в 17:41)
| | Что значит "разбить запятыми"? | |
|
|
|
|
|
|
|
для: korifan
(05.06.2014 в 17:41)
| | шикарный код.
типа того?
echo $titla= preg_replace('/ /i', ',' , $titla);
|
| |
|
|
|
|
|
|
|
для: moonfox
(06.06.2014 в 07:10)
| | Обязательно preg в таком случае? | |
|
|
|
|
|
|
|
для: confirm
(06.06.2014 в 07:26)
| | не факт) | |
|
|
|
|
|
|
|
для: moonfox
(06.06.2014 в 07:10)
| | Этот код выводит разбитое запятыми предложение, а мне нужно что бы оно записывалось бы в бд в поле meta_k. | |
|
|
|
|
|
|
|
для: korifan
(06.06.2014 в 10:22)
| | я думаю вам нужно хотя бы базис постигнуть
чтение/запись в БД.... | |
|
|
|
|
|
|
|
для: korifan
(06.06.2014 в 10:22)
| | Метатег keywords и содержит через запятую значения, если именно это подразумевается, зачем разбивать? Массив значений в одно поле таблицы записать нельзя, нет такого типа данных. | |
|
|
|
|
|
|
|
для: korifan
(05.06.2014 в 17:41)
| | str_replace(); | |
|
|
|
|
|
|
|
для: moonfox
(06.06.2014 в 08:12)
| | Думайте, не это, не preg так как вы его прописали не в тему. | |
|
|
|
|
|
|
|
для: confirm
(06.06.2014 в 15:17)
| | у чела титла и так пишется в БД
его вопрос вообще хз что предполагает
разбивать и писать в БД.......
ели это киворд то вообще нет смысла еще и в БД писать
сразу титлу в мету ставить и все | |
|
|
|
|
|
|
|
для: korifan
(05.06.2014 в 17:41)
| | Вы имеете в виду, чтобы вместо пробелов были запятые? Примитив:
<?php
$_POST['titla'] = str_replace(" ", ",", $_POST["titla']);//Первый параметр функции - пробел в кавычках
|
Кстати, вместо
<?php
if ($result == 'true')
|
надо написать | |
|
|
|
|
|
|
|
для: Commander
(06.06.2014 в 20:59)
| | >Кстати, вместо
<?php
>if ($result == 'true')
|
>надо написать
а вот не надо так как раз писать, лучше:
а то всякое бывает :)
если переменная может принимать только false и true, то и сравнивать лучше бы с ними, а то и "-1", для php true, да и "0" в вашем случае может дать неожиданный результат/ | |
|
|
|
|
|
|
|
для: tvv123456
(06.06.2014 в 22:37)
| | а вот не надо так как раз писать, лучше:
а то всякое бывает :)
если переменная может принимать только false и true, то и сравнивать лучше бы с ними, а то и "-1", для php true, да и "0" в вашем случае может дать неожиданный результат/
Не выйдет. Если вы посмотрите код, то увидите, что переменная $result содержит в себе значение, возвращаемое функцией mysql_query(). А это либо false, либо ресурс, который !== true. | |
|
|
|
|
|
|
|
для: Commander
(06.06.2014 в 22:59)
| | Прошу прощения.
Думаю согласитесь, что принцип тот же
бла-бла !==false
сами сказали: либо false либо значение | |
|
|
|
|
|
|
|
для: tvv123456
(08.06.2014 в 20:58)
| | Принцип ясен. Но $result === true работать не будет. Потому что $result == true, но тип данных не совпадает. | |
|
|
|
|
|
|
|
для: tvv123456
(06.06.2014 в 22:37)
| | Как правильно заметили ниже, значение $result может быть равно resource, true (для запросов типа INSERT, UPDATE...) или false.
Т.е. в данном случае, чтобы просто убедиться, что запрос был корректно выполнен, достаточно проверки:
т.к. resource == true и true == true. Или, с проверкой типа данных:
<?php
if ($result !== false)
|
| |
|
|
|
|
|
|
|
для: Commander
(06.06.2014 в 20:59)
| | А если в title используются знаки препинания и кавычки?
Может лучше использовать preg_match_all, выбирая слова [А-я] {3,15}? - Единственное наверное лучше тогда keywords хранить в БД, а не использовать preg_match_all каждый раз когда запрашивается страница. | |
|
|
|
|
|
|
|
для: tvv123456
(12.06.2014 в 21:55)
| | А если в title используются знаки препинания и кавычки?
А что мешает тем же str_replace() экранировать запятые в них? Или заменить запятые, ну, к примеру, двойными запятыми? | |
|
|
|
|
|
|
|
для: Commander
(13.06.2014 в 07:19)
| | >А что мешает тем же str_replace() экранировать запятые в них? Или заменить запятые, ну, к примеру, двойными запятыми?
Что за чушь? зачем что-то экранировать и добавлять в кейворды лишние символы?
Я имел ввиду, что когда вы замените пробелы запятыми, то могут получиться всякие некрасивые кейворды типа слово2,",слово2,",слово3,,слово4;,;,слово5 и т.п. А предлоги тоже отдельным кейвордом будут? все таки str_replace не для этого случая, а получив все слова в массиве при помощи preg_match_all, можно использовать implode(",", $array) и все получится красиво и без всякого мусора. | |
|
|
|
|
|
|
|
для: tvv123456
(15.06.2014 в 11:07)
| | у чела заголовок служит kw
а вы беспокоитесь о записи в БД
да еще и через запятые))))
накой хрен)))))))
если он так парится о kw
то в админке при правке страницы снизу идут 3 поля title keys descr
и в них без всяких запитых записывается строка для meta
в счлучае когда там пусто выводится в title kw и descr - сам заголовок весь как есть | |
|
|
|
|
|
|
|
для: moonfox
(15.06.2014 в 14:27)
| | >у чела заголовок служит kw
>а вы беспокоитесь о записи в БД
>да еще и через запятые))))
>накой хрен)))))))
>
>если он так парится о kw
>то в админке при правке страницы снизу идут 3 поля title keys descr
>и в них без всяких запитых записывается строка для meta
>в счлучае когда там пусто выводится в title kw и descr - сам заголовок весь как есть
Согласен на все 100%, НО бывает такая ситуация когда материал добавляют юзеры сайта, тогда есть вероятность, что в заголовках они укажут больше кейвордов, чем если бы их попросить написать в отдельном поле к своему материалу, хоть и вероятность уже и достаточно ничтожна.
А так все-таки хотелось помочь топик-стартеру найти оптимальное решение его задачи. | |
|
|
|