MySql. Разбивка на страницы.

RomikChef

Guest
Пости, я подправлю, и оставим, как очередной из полусотни вариантов постраничного вывода на этом форуме :)
 

Yuriy_S

-=PHP-Club=-
PHP:
//сначала выводим сами записи:
//
$rows=10; // количество записей на странице
// определяем, с какой записи начинать
// если страница($page) не указана, то начинаем выводить с 0 записи.
if(!isset ($page)) $start=0; else $start=($rows*$page)-$rows; 
// Теперь выбираем нужное кол-во записей, со строки $start
$query="SELECT * FROM $tn WHERE id='$mid' LIMIT $start,$rows";
$result=mysql_query($query) or die(mysql_error()); 
//...выводим данные...
//
//А теперь, собственно, выводим ссылки:
//
$result=mysql_query("SELECT count(id) FROM $tn WHERE id='$mid'") or die(mysql_error()); 
$total=mysql_result($result,0);  //определяем кол-во записей
$pages=ceil($total/$kol); // определяем кол-во страниц
//выводим в цикле номера страниц + ссылки на них!
for($i=1;$i<=$pages;$i++){
  if($i!=$page){
    echo "| <a href=view_mess.php?page=$i>$i</a> |";
  } else {
    echo "<b> $i </b>";
  }
}
Ну вот оно, подправил, все правильно теперь!
 

RomikChef

Guest
Вот, в таком виде оно больше походит на пример для подрожания :)

Юра, обрати внимание на изменения, которые я внес.
Они связаны и с логикой и с пониманием и просто с оформлением и читабельностью.
 

Yuriy_S

-=PHP-Club=-
ну это понятно, само собой. Код стал меньше. А я то как бы не оптимизировал код..., ладно, главное что все ок! :)
 

Yuriy_S

-=PHP-Club=-
вот, ещё хотел спросить, можно ли сделать вывод каждой записи с разным бакграундом таблицы, ну вот как тут в этом форуме, идет чередование цветов в сообщениях, в цикле while?
В цикле for, когда я выводил данные, было все ок, там легко.
а у меня БД мускуль, и я вывожу вот так:
while($row=mysql_fetch_array($result)){
$avtor2=$row['avtor'];
if (($****)%2 !=0){
echo "<table width.........backgound=blue>";
echo $avtor;
...
}
+ у меня деление на страницы. Как мне вот записать переменную в условии этом? if (($****)%2 !=0)
 

Yuriy_S

-=PHP-Club=-
а что такое $i? у меня нету никакого цикла for !
мне нужно сделать как то по-другому, я же вывожу записи циклом while($row=mmysql_fetch_array($result)){...
и вот после цикла нада ставить условие, if(($что_то%2) != 0){ echo "один цвет"; }
else {
echo "другой цвет";
}
}
 

Апокалипсис

Guest
Yuriy_S зачем стока ответов? Жми кнопку "Редактировать"! И всё!
 

RomikChef

Guest
Хуже дурака тольк дурак с инициативой.
Юра, что за бред ты тут написал?
ГДЕ, скажим мне, тормозной друг мой, я тебе велел делать то что ты тут нацарапал?
ГДЕ? Из каких кошмарных снов у тебя тут родился этот код?
Почему ты не сделал то, что хотел?
ты спросил, что вставить вместо звездочек - я тебе ответил.
Почему ты молча не сделал, а начал какой-то бред нести?

$i - переменная
вставлять % надо не ПОСЛЕ цикла - после цикла он нужен, как рыбке зонтик - а внутри!!!!
 

Yuriy_S

-=PHP-Club=-
блин, Ромик, у меня и так все в цикле!!!
Я просто спросил, что за $i, когда у меня не цикл for!!!, а я прсто использую функцию mysql_fetch_array();
но потом до меня дошло: $i - можно сделать, но уже нада в цикле while($i < mysql_num_rows($result)){....а тут уже всякие условия, и т.п...}.
 

RomikChef

Guest
зачем менять цикл?
какая вообще связь?
НЕ НАДО НИЧЕГО МЕНЯТЬ!
ПРОСТО в цикл надо добавить увеличение $i
в любом месте напиши $i++, хоть в самом условии.

Юра, бросай программирвоание.
Ну не твое это.
Ты делаешь как обезьяна.
Да нет, обезьяна - и та больше понимает то, что она делает.

Ты сто раз видел обсуждения, как выводить построчно. И за все время нихрена не понял, как работает.

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

Serguitar

Новичок->продвинутый
Автор оригинала: Yuriy_S
лано, тогда не буду задавать вопросы больше.
А вот это зря, братан, зря. Просто вопрос сначала придумай. Не умеешь-почитай как! Как любит говорить Фанат: "Правильно заданный вопрос-половина ответа!". Так что дерзай.
 

lucas

Guest
Serguitar

Может хватить поднимать топики полуторагодичной давности?
 

Acabar

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

п.с. вторую страницу лень смотреть было...
 

Serguitar

Новичок->продвинутый
а сделал я уже всё, умник! Пример у меня просто не такой как в гостевухах. А принцип мне и так был понятен. Мне надо было сделать скрипт, выполняющий постраничный вывод без повторного обращения к базе, понимаешь? Причём на чужой сценарий, который я не имел прао переделывать под более удобный. Отсюда и вопросы. Но уже всё решилось, так что вот так.
Lucas
Прости за поднятие темы, запарил посмотреть на число.
Всё.
 
Сверху