Правильная нумерация записей из БД

samb100

Новичок
Правильная нумерация записей из БД

еще заметил дурацкую вещь :((

в цикле выводится нумерация записей из БД в ячейки таблицы, код простой:
Код:
$ord = 1;
do 
{
$ord++;
}
while ($row = mysql_fetch_array($result));
естественно, записи вытягиваются из MySQL

и при переходе на другую страницу этого же раздела (/cat.php?id_categ=1&page=2)
нумерация ячеек в таблице слетает и НАЧИНАЕТСЯ СНОВА С ЕДИНИЦЫ :(
попробовал сессиями, не получается, все равно начинается с единицы, как тут лучше поступить?

Вообще как вы нумеруете записи из БД в ячейки таблицы, чтобы на других страницах этого же раздела
нумерация не слетала?
 

Фанат

oncle terrible
Команда форума
обожемой.
сессии здесь не подходят. тебе нужен другой механизм, гораздо сложнее. арифметика называется.

у тебя есть переменная $page - номер страницы. и переменная $num - желаемое кол-во записей на одной странице. из них можно получить номер первой записи на странице. но это уличная магия и я ее тебе не покажу
 

samb100

Новичок
пусть номер первой записи будет $ord = 1; (хотя id в БД у этой первой записи будет не первый, а начинаться, например, с 4)
 

Фанат

oncle terrible
Команда форума
при чем здесь id?

-~{}~ 29.06.09 09:15:

ты никак не поймешь, что страницы у тебя - динамические. то есть, все числа можно не "прописать", а ВЫЧИСЛИТЬ.
 

samb100

Новичок
это понятно... но как страница поймет что ей надо начинать считать не с ЕДИНИЦЫ, а с того числа который был на предыдущей странице, без сессий и куков?
 

Фанат

oncle terrible
Команда форума
это просто фантастика.
у тебя есть переменная $page - номер страницы. и переменная $num - желаемое кол-во записей на одной странице.
у тебя есть переменная $page - номер страницы. и переменная $num - желаемое кол-во записей на одной странице.
у тебя есть переменная $page - номер страницы. и переменная $num - желаемое кол-во записей на одной странице.

так лучше видно?

-~{}~ 29.06.09 09:46:

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

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

samb100

Новичок
да вроде так все понятно, взять отсюда, положить сюда, сделать тюды-сюды, а как до дела доходит, не знаю как начать.

-~{}~ 29.06.09 10:00:

$ord = 1;
$ord++;
$num = $num + $ord;
так?

я просто не совсем понимаю как это будет распространяться на другие страницы этого же раздела, какие условия
 

Фанат

oncle terrible
Команда форума
ты невнимательно читаешь.
я писал про переменные $page и $num
ты не можешь использовать $ord в вычислениях! $ord - это то, что ты ДОЛЖЕН ПОЛУЧИТЬ!
какое значение имеют эти переменные на первой странице? или на первой слишком сложно. на второй.
и какое значение должна иметь переменная $ord на второй странице?

заполни, пожалуйста, эту таблицу:
$page на второй странице равна ...
$num на второй странице равна ...
$ord на второй странице должна быть равна ...
 

samb100

Новичок
$page на второй странице равна ... 2
$num на второй странице равна ... 3
$ord на второй странице должна быть равна ... нумерация от 4 до 6 (включительно)
 

Фанат

oncle terrible
Команда форума
скажи, ты правда не можешь из 2 и 3 получить ни 4, ни 6?
 

samb100

Новичок
$start = $page * $num - $num;
это понятно, но загвоздка в том, что это не просто формула, а формула, которая работает в ЦИКЛЕ!
 

Фанат

oncle terrible
Команда форума
В КАКОМ ЕЩЕ ЦИКЛЕ???
где ты там цикл увидел? каким оператором этот цикл у тебя организован?
 

samb100

Новичок
так вот в самом первом посте писал do-while:
Код:
$ord = 1;
do 
{
$ord++;
}
while ($row = mysql_fetch_array($result));
добавил строчку:
Код:
$ord = 1;
do 
{
[b]$ord = $page * $num - $num + $ord;[/b]
$ord++;
}
while ($row = mysql_fetch_array($result));

[size=1][i]-~{}~ 29.06.09  11:43:[/i][/size]

УРА_УРА_УРА!! У Меня получилось!
я все-таки еще не полный дебил!))))

ну вы ребята - мегамозги!
вы знаете, как у алкашей мозги все насквозь пропитые, ну такие проспиртованные все практически, вот вы, профессионалы программирования, похожи на них)))
 
Сверху