T
TYMON
Вот кое-что написал, но чтото не работает, выводит каждую новость по 4 раза, а создает вторую страницу а там каждую новость по 2 раза. Всего новостей 6. Делаю чтобы было по 4 новости на странице (для демонстрации достаточно)
Исходный код
А вот файл PHP
Исходный код
Код:
<?php
include ("parts/connect.php");
$base_data=mysql_query("SELECT * FROM statii", $base_connect);
$page_data=mysql_fetch_array($base_data); //массив данных
?>
<!doctype html>
<html>
<head>
<meta charset="windows_1251">
<title>Футбольные новости</title>
<link href="css/mainstylecss.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="outer_wrapper">
<!--Header!-->
<?php
include ("parts/header.php")
?>
<!--Menu-->
<?php
include ("parts/menu.php")
?>
<div id="container" >
<div id="main" align="center">
<?php
do
// Выводим новости
{
// Считаем общее количество новостей
$resultrows = mysql_query("SELECT `id` FROM `statii`");
$rows = mysql_num_rows($resultrows);
// Пишем количество выводимый новостей на страницу, в нашем случае - 10
$messages_per_page = 4;
// Условие: если запрос GET не существует или он не является числом, то присваеваем ему значение 0
if (!isset($_GET['rowstart']) || !preg_match("/^[0-9]+$/", $_GET['rowstart']))
{
$_GET['rowstart'] = 0;
}
// Выводим по 4 новости на страницу, где начальной точкой отсчета будет считаться запрос GET
$result = mysql_query("SELECT * FROM `statii` ORDER BY `id` DESC LIMIT ".$_GET['rowstart'].",".$messages_per_page);
while ($data = mysql_fetch_assoc($result))
{
//связываем с id материала
printf("<div id='blog'>
<table>
<tr >
<td colspan=5><a href='podrobnee.php?id=%s'>%s</a><br></td>
</tr>
<tr>
<td colspan=5> %s<br></td>
</tr>
<tr>
<td align=center>%s   %s  Просмотров%s </td>
<td> <a href='podrobnee.php?id=%s'>Подробнее</a></td>
</tr>
</table>
<hr />
</div>", $page_data["id"], $page_data["title"], $page_data["introtext"],
$page_data["author"], $page_data["date_sozd"], $page_data["views"], $page_data["id"]);
}
// Условие: если общее количество страниц больше, чем нам надо вывести (т.е. больше 10), то выводим список страниц
if ($rows > $messages_per_page)
{
echo makepagenav($_GET['rowstart'], $messages_per_page, $rows, 3, $PHP_SELF."?&");
}
}
while ($page_data=mysql_fetch_array($base_data));
?>
</div> <!--Main close!-->
<!--Lastnews-->
<?php
include ("parts/lastnews.php")
?>
<!--Aside-->
<?php
include ("parts/aside.php")
?>
</div>
<!--Container close!-->
<!--Footer-->
<?php
include ("parts/footer.php")
?>
</div> <!--Out_Wrapper close!-->
</body>
</html>
А вот файл PHP
PHP:
<?
// Функция постраничной навигации
function makepagenav($start, $count, $total, $range = 0, $link)
{
if ($link == "") { $link = $PHP_SELF."?"; }
$pg_cnt = ceil($total / $count);
if ($pg_cnt <= 1) { return ""; }
$idx_back = $start - $count;
$idx_next = $start + $count;
$cur_page = ceil(($start + 1) / $count);
$res = "Страница ".$cur_page." из ".$pg_cnt.": ";
if($idx_back >= 0) {
if($cur_page > ($range + 1)) {
$res .= "<a href='".$link."rowstart=0'>1</a>...";
}
}
$idx_fst = max($cur_page - $range, 1);
$idx_lst = min($cur_page + $range, $pg_cnt);
if ($range == 0) {
$idx_fst = 1;
$idx_lst = $pg_cnt;
}
for ($i = $idx_fst; $i <= $idx_lst; $i++) {
$offset_page = ($i - 1) * $count;
if ($i == $cur_page) {
$res .= "<span><strong>".$i."</strong></span>";
} else {
$res .= "<a href='".$link."rowstart=".$offset_page."'>".$i."</a>";
}
}
if ($idx_next < $total) {
if ($cur_page < ($pg_cnt - $range)) {
$res .= "...<a href='".$link."rowstart=".($pg_cnt - 1) * $count."'>".$pg_cnt."</a>";
}
}
return "<div>".$res."</div>";
}
//соеденение с БД
$base_location="localhost";
$base_name="football";
$base_user="root";
$base_password="";
$base_connect = mysql_connect ($base_location, $base_user, $base_password);
mysql_select_db ($base_name, $base_connect);
mysql_query ("set character_set_client='cp1251'"); //кодировка, в которой данные будут поступать от клиента
mysql_query ("set character_set_results='cp1251'"); //кодировка, в которой будет выбран результат
mysql_query ("set collation_connection='cp1251_general_ci'");
if (!$base_connect)
{
echo("<p>Ошибка!!! Невозможно подключиться к базе данных!!!</p>");
exit();
}
?>