Jump to content
  • 0

Постраничная навигация


smlw
 Share

Question

Подскажите как вывести 10 записей из бд, потом нажимаешь на страницу [2] и тд, выводятся 10 записей перед этими.

Выводил так, но без навигации, просто все записи но одной странице

<?php
// Константы для подключения к СУБД
//Хост подключения к БД
define('PHP_HOST2', 'localhost');

//Пользователь
define('PHP_USER2', 'root');

//Пароль
define('PHP_PASS2','741258');

//Базаданных
define('PHP_DB2', 'dsp_base');

//Префикс таблиц БД
define('PHP_DBPREFIX2', '');

// Подключение к СУБД
$link = mysql_connect(PHP_HOST2, PHP_USER2, PHP_PASS2) or die (mysql_error());

// Выбираем базу данных
mysql_select_db(PHP_DB2, $link);


//Устанавливаем кодировку UTF8
mysql_query ("SET NAMES utf8");
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");

// Формируем строку для запроса к нашей базе данных
// Не забывайте обрамлять имена таблиц и полей обратными кавычками `TABLE`
$sql= "SELECT * FROM `". PHP_DBPREFIX2."forplayers` ORDER BY id DESC";

// Скармливаем наш запрос MySQL
$result = mysql_query($sql) or die(mysql_error() ."<br/>". $sql);

// Рисуем табличку
$table = "<table border=0 width=100% align=center>\n";

while ($row = mysql_fetch_assoc($result))
{
$table .= "<tr>\n";
$table .= "<b><span style=\"color: #AD2F2F; \">Ник игрока: </span></b>".$row['playername']."<br>\n";
$table .= "<b><span style=\"color: #AD2F2F; \">Роль в игре: </span></b>".$row['rol']."<br>\n";
$table .= "<b><span style=\"color: #AD2F2F; \">Любит играть на: </span></b>".$row['favoritehero']."<br>\n";
$table .= "<b><span style=\"color: #AD2F2F; \">Требования к капитану: </span></b>".$row['playerreq']."<br>\n";
$table .= "<b><span style=\"color: #AD2F2F; \">Связь с игроком: </span></b>".$row['playercontacts']. "<br>\n";
$table .= "<b><span style=\"color: #AD2F2F; \">Дата публикации: </span></b>".date('m-d-Y H:i:s', intval($row['data'])). "<br><hr>\n";
$table .= "</tr>\n ";
}
$table .= "</table>\n";

// Выводим заполненую таблицу на экран
echo $table;
?>

Может кто знает как усовершенствовать код, или же написать новый, но что бы было по 10 записей? :)

Edited by rus
обрамляйте код в соответствующие теги!
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Здесь много кто знает, вы хотите чтоб за вас его переписали, или подсказали в какую сторону копать ? корректней задавайте вопрос.

Желательно написать, я в процессе чтения книги "PHP 5 в подлиннике" и параллельно пишу сайт, поэтому до такого не дошел.

Нашел такое решение? Как вам оно?

<?php

mysql_connect ("localhost", "root", "741258") or die ("error connect");
mysql_set_charset("utf8");
mysql_select_db ("dsp_base") or die ("error select");

$sum = 5; // число записей на странице
$result = mysql_query("SELECT count(*) as a from forcaps");
//count -- считает количество элементов массива
$arr = mysql_fetch_row($result); // возвращает неассоциативный массив
$rec = $arr[0]; // общее число записей в таблице

// если страницы не существует, выводим первую страницу
if(!isset($_GET['str']))
{$str = 0;}
else
{$str = $_GET['str'];}

// получем номер начальной записи страницы
$start = $str * $sum;

// запрос
$r = mysql_query("SELECT * FROM forcaps_new LIMIT $start, $sum");
$n = mysql_num_rows($r); // возвращаем число рядов результата запроса

// если страница не первая, выводим ссылку НАЗАД
if ($str > 0)
{
$p = $str - 1;
echo "<a href=wall.php?str=$p>НАЗАД</a>";
}

$str++; // увеличиваем переменную $str на единицу;
// выводим ссылку на следующие пять записей, если она есть,
// то есть число записей, которые нужно вывести,
// и смещение не превышает общего числа записей

if($start + $n < $rec)
echo "<a href=wall.php?str=$str>ДАЛЕЕ</a>";

// выводим записи
for ($i = 0; $i < $n; $i++)
{
$myrow = mysql_fetch_array($r);

$table = "<table border=0 width=100% align=center>\n";

{
$table .= "<tr>";
$table .= "<span style=\"color: #552525;\"> Ник капитана :".$myrow['capname']."</span></br>";
$table .= "<span style=\"color: #DA5C5C;\">".$myrow['capage']."</span></br><hr>";
$table .= "</tr>";
}
$table .= "</table>";

// Выводим заполненую таблицу на экран
echo $table;

}

?>

Edited by rus
обрамляйте код в соответствующие теги!
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy