Система тегов

Статус
В этой теме нельзя размещать новые ответы.
saen, спасибо большое, я на 2 шага приблизился к истине. Но с вашим запросом мне выдает теперь:

количество ошибок=количеству тегов. Снес иф-элс под цикл, но как не трудно догадаться все равно "жопу" выдает.

Может еще какие нюансы есть?
посмотрите, что у вас возвращает mysql_query, а также сделайте вардамп самого запроса
 
Это ошибка запроса в БД. Покажи структуру таблицы tags. Какой там первичный ключ?
 
таблица tags:
id | tag
первичный ключ - id
 
автоинкремент стоит на id?
 
да стоит)

разобрался я со своей проблемой. Для теста решил занести в базу значения через перечисление VALUES ( ('tag1'), ('tag2'), ('tag3') )
и все получилось.

Поставил на хостинг и заработал ваш вариант, значит что-то не то порол localhost.

saen, может вы тогда подскажите как по-умному сделать проверку имеющихся в таблице тегов перед добавлением новых, чтоб получать id имеющихся уже и добавлять только те, которых не было?
 
Ну собственно 2 варианта, которые сразу в голову лезут:
1)
в базу пишем теги как есть, а выборку делаем вроде того: ...WHERE tags LIKE "%$tag%"
2)
Делаем таблицу тегов (id, title)
Делаем таблицу, для привязки тегов к материалам (tag_id, post_id)
при добавлении материала, парсим теги (explode(...)), вносим новые теги в таблицу тегов и выбираем id уже существующих, после чего добавляем все это в таблицу привязки тегов.
Выбор по тегу соответственно будет в разы быстрее (...WHERE tag_id IN(...))
Общий принцип, так сказать))))
Чем первый вариант будет отличаться от обычного поиска по базе?
Теги для того и нужны,что бы был быстрый поиск по сайту, без каких либо действий со стороны конечного пользователя.
В базе с тегами,должны быть несколько полей,такие как:
id,tagname,tagclick,tagcount.
id - no comment
tagname - no comment
tagclick - Сколкьо раз по немуклацнули,тобиш статистика для выводу в поле
tagcount - количество повторов с таким тегом.
tagnewsid - newsid через запятую,те новости в которых эти теги были использованы.
 
да стоит)

разобрался я со своей проблемой. Для теста решил занести в базу значения через перечисление VALUES ( ('tag1'), ('tag2'), ('tag3') )
и все получилось.

Поставил на хостинг и заработал ваш вариант, значит что-то не то порол localhost.

saen, может вы тогда подскажите как по-умному сделать проверку имеющихся в таблице тегов перед добавлением новых, чтоб получать id имеющихся уже и добавлять только те, которых не было?
Самый простой способ: делаешь запрос в БД типа mysql_query("SELECT что-то там WHERE `tag`= 'твой тег'");
Если запрос вернет FALSE, значит такого тега в БД нет и его можно смело записывать.
 
Спасибо, плавно переполз на CodeIgniter.
Код получился такой (вдруг кому пригодится)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху