Эта тема на forum.dklab.ru


Сергей доктор: Алгоритм каталога или как попасть на нужную страницу каталога
Как то давно написал я каталог. Идеология такова. Регистрация. Выдача баннера счетчика. Далее в зависимости от количества показов этого счетчика сайт или "поднимается" в каталоге или "опускается". В каждом разделе где много регистраций сделано "листание" Сделано на PHP с MYSQL. Однако же захотелось мне сделать так, чтобы при клике по баннеру на удаленном сайте отрывалась именно та страница, где юзер в данный момент находится в зависимости от показа счетчика . (по типу каталога mail.ru) Можно просто сделать выборку
по ID счетчика, но в этом случаи выводится только одна страница с регистрационными данными юзера. А мне нужно, чтобы юзер попадал на нужную страницу каталога и стало быть видел свое положение в нем. Надеюсь задачу обрисовал понятно.
Никак не могу понять по какому алгоритму это лучше сделать..Может кто подкинет идейку?
e1:
Необходимо найти позицию сайта среди всего каталога, ну а потом бить страницами и выводить... Не забыть ещё прикрутить якорь, чтобы перекидывать непосредственно на позицию.
Сергей доктор:
Ну насчет алгоритма я вообщем то придумал. Только вот не пойму, почему не срабатывает следующий участок кода:

if(isset($url))
{
for($list = 1; $list > 100000; $list = $list+35)
{
$r=mysql_query("select * from katalog WHERE n=$id ORDER BY `skoka` DESC LIMIT $list , $list2");
for ($i=0; $i<mysql_num_rows($r); $i++)
{
$f=mysql_fetch_array($r);
if ($f['id'] == $url) break(1);

}

}

}


Несрабатывание заключается в пустоте в переменной массиве $r, хотя там точно по идее результат должон быть.
Буду крайне благодарен за любой намек.
Г.О.:
А list2 что за переменная?
А в url что?
Сергей доктор:
А list2 что за переменная?
А в url что?

$url это идентификатор баннера в базе mysql
А $list2 какое количество баннеров выводить на страницу.
Где то ошибка в идеологии цикла...
Г.О.:
Под пустой переменной подразумевается то, что mysql_num_rows( $r ) == 0?
Что за условие: where n=$id? Хорошо бы увидеть структуру таблицы, для того, чтобы понимать, что делает запрос.

Да, и у вас $list перебирается с 1, а в LIMIT записи нумеруются с 0.
Сергей доктор:
Я решил проблему. В сущности, как всегда бывает, проблема была в "мелочи" Я писал: break(1) а правильно
писать break 1 ;
#### () не надо!


Ну вообщем, работает у меня попадание на нужную страницу с удаленного сайта.

Эта тема на forum.dklab.ru