Реклама на сайте Advertise with us

Mysql:постраничный вывод...

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

programmer

С нами с 08.12.02
Сообщения: 7607
Рейтинг: 5752

Ссылка на сообщениеДобавлено: 04/11/04 в 21:32       Ответить с цитатойцитата 

в общем классика:
Код:

<?php
// кол-во строк в страницах
$in_page = 10;

// получаем количество строк
$amount = @mysql_result(mysql_query("SELECT count(id) as goods_total FROM goods"),0);

// рисуем навигационную строку и пишем начало таблицы
print("<div align=center>". <b>draw_bar($page, $amount, $in_page,
    "goods.php?page=")</b>. "</div>\n<table>");

// формируем запрос к базе
$goods_result = mysql_query("SELECT id, name, description, price FROM goods
    ORDER BY name, price ". <b>get_limit($page, $amount, $in_page)</b>);

// получаем номер для нумерованного списка
$count = <b>get_count_limit($page, $amount, $in_page)</b>;

// выводим строки
while ($good_row = mysql_fetch_array($goods_result)) {
  $count++;
  print ("<tr");

  // фон каждой второй строки — серым цветом
  if ($count/2==intval($count/2))
    print (" bgcolor=#e1e1e1");
  print ("><td align=right>$count.</td><td>${good_row[name]}
    <br>${good_row[description]}</td><td align=right>${good_row[price]}</td></tr>\n");
  };

// конец таблицы и нижняя навигационная строка
print("</table><div align=center>". <b>draw_bar($page, $amount,
    $in_page, "goods.php?page=")</b>. "</div>\n");


это динамика, т е странице передается значение $page исходя из которого формируется запрос к базе с соответствующим значением limit
вот.
я немогу сформировать статичные страницы, т е скрипт формирует страницы 1-2-3-4-5-6 с навигационной строкой.
Есть какой нибудь алгоритм формирования кучи страниц запуская скрипт всего раз, пробовал мускульный запрос запихнуть в цикл, изменяя значение limit - не пашет icon_sad.gif

крипта на ByBit

0
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 04/11/04 в 21:53       Ответить с цитатойцитата 

а проблема то в чем ? Если сможешь сформировать одну, то что мешает сформировать много ?

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

1
 

programmer

С нами с 08.12.02
Сообщения: 7607
Рейтинг: 5752

Ссылка на сообщениеДобавлено: 04/11/04 в 23:09       Ответить с цитатойцитата 


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

$pages_query = "select * from $linx_table LEFT JOIN $categorys_table ON ($linx_table.site_category=$categorys_table.category_id) where site_popular='High' or site_popular='Very High' order by site_popular, site_category, site_title";   
  $rs   = mysql_query($pages_query, $conn);
  $no_of_results = mysql_num_rows($rs);
  $no_of_pages = ceil($no_of_results/$no_search_results);
  for ($i = 0; $i < $no_of_pages; $i++)
      {
     $a = $i+1;
     $offset = (($a-1)*$no_search_results);
     // parse for standard tags i.e. menu, total links, build date
     $the_html = preg_replace("/<%build-date%>/",  $build_date, $the_html);
     // retrive cool links from database
     $sql = "select * from $linx_table LEFT JOIN $categorys_table ON ($linx_table.site_category=$categorys_table.category_id) where site_popular='High' or site_popular='Very High' order by site_popular, site_category, site_title limit $offset, $no_search_results";
     $rs = mysql_query($sql,$conn);
     // work out how many are new and parse
      $cool_links = mysql_num_rows($rs);
      $the_html = preg_replace("/<%total-links%>/", $cool_links, $the_html);
     // loop through them building new_link_html
        $current_category = 0;
        while( $row=mysql_fetch_array($rs) )
         {
         if($current_category!=$row[site_category])
          {
         if($current_category!=0) $cool_link_html.="</blockquote>\n";
         $temp_cat = $row[site_category];
         $current_category = $row[site_category];
         }
         $cool_link_html.= build_link_html($row[site_title],$row[site_url],$row[site_descrip],$row[site_avs],false,$row[site_popular],$row[site_banner],$row[cat_name]);
         }
     // parse for category links
     $the_html = preg_replace("/<%cool-links%>/", $cool_link_html, $the_html);
     $the_html = parse_for_directory_links($the_html,0);
     // save page
      echo("Saving COOL Page...");
     if($i == 0){$numberpage = "cool";}
     else{$numberpage = "cool-".$a;}
     $namepage = $numberpage.$page_extension;
     echo $namepage;
     save_html($base_build_path,$namepage,$the_html);
      echo("<a href=\"$base_build_url".$namepage."\" target=\"_blank\" class=\"link\">Saved</a>...<br />");
}

крипта на ByBit

0
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 04/11/04 в 23:29       Ответить с цитатойцитата 

лень честно говоря смотреть скрипт. Но решение таково:
для каждой страницы делаешь
SELECT * FROM table ORDER BY id ASC LIMIT $x,20;

где $x = (PAGE_NUMBER-1)*20 , т.е. 0,20,40,60,80,100

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

1
 

programmer

С нами с 08.12.02
Сообщения: 7607
Рейтинг: 5752

Ссылка на сообщениеДобавлено: 04/11/04 в 23:43       Ответить с цитатойцитата 

я и делаю так
Код:
$x = (PAGE_NUMBER-1)*20 , т.е. 0,20,40,60,80,100

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

крипта на ByBit

0
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 05/11/04 в 00:51       Ответить с цитатойцитата 

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

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

1
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »