programmer
С нами с 08.12.02
Сообщения: 7615
Рейтинг: 5760
|
Добавлено: 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 - не пашет
|
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 04/11/04 в 21:53 |
а проблема то в чем ? Если сможешь сформировать одну, то что мешает сформировать много ?
|
|
Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.
|
1
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7615
Рейтинг: 5760
|
Добавлено: 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 />");
}
|
|
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 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
Сообщения: 7615
Рейтинг: 5760
|
Добавлено: 04/11/04 в 23:43 |
я и делаю так
Код: | $x = (PAGE_NUMBER-1)*20 , т.е. 0,20,40,60,80,100 |
$x меняется в цикле
в запросе меняется лимит.
но выводит гад на каждой странице только первую пачку записей...
ответь тогда - можно запрос в цикле крутить - или это неправильно?
|
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 05/11/04 в 00:51 |
можно конечно.
У тебя код немного путанный, честное слово, лень разбиратся. Начни выводить переменные на экран и увидешь проблему.
|
|
Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.
|
1
|
|
|