|
|
|
| Неподскажите как зделать так чтобы первые 20 строк из базы выводились на 1 странице вторая двадцатка на второй и тд. вот кусок кода заранее спасибо
<?
require "config.php";
if (!mysql_connect($server,$user,$pass)){echo "Не могу подключится к базе данных. Проверьте правильность пароля, логина и имя базы"; exit;}
mysql_select_db($dbname);
echo "<body>";
echo "<table border=1 cellspacing=0 cellpadding=0>";
$r=mysql_query("select * from links");
for ($i=0; $i<mysql_num_rows($r); $i++){
echo "<tr>";
$f=mysql_fetch_array($r);
echo "<td><center>$f[gif]</center></td><td><center>$f[link]</center></td>";
echo "</tr>";}
echo "</table>";
echo "</body>";
mysql_close();
?>
|
| |
|
|
|
|
|
|
|
для: sata
(21.04.2005 в 20:21)
| | Чтобы выводились всего от 1 до 20 строк надо так
select * from links limit 0,20;
|
| |
|
|
|
|
|
|
|
для: alik
(21.04.2005 в 20:29)
| | Это я знаю а вот как зделать когда допустим в базе сохранено 100 значений и они выводились по 20 на каждую страницу и это всё создавалось динамически | |
|
|
|
|
|
|
|
для: sata
(21.04.2005 в 20:37)
| | Ищите на форуме тема поднималась не однократно. Могу на вскидку дать алгоритм.
1)Считаем сколько всего значений
2)Делим общее кол-во на кол-во значений выводимых за раз (вычисляем кол-во страниц)
3) При нажатие на номер страницы происходит запрос select * from links limit [кол-во на странице],[номер страницы]; | |
|
|
|
|
|
|
|
для: Akira
(21.04.2005 в 20:56)
| | Спасибо нашёл на форуме как это смастерить. А вот как зделать сортировку чтобы выводились с последнего по первое, то есть сперва идёт 100 и на уменьшение что то я ненашёл неподскажете. Спасибо | |
|
|
|
|
|
|
|
для: sata
(21.04.2005 в 21:43)
| | Ну если у вас в таблице поле с датой добавления то можно сделать так
SELECT * FROM 'links' ORDER by 'putdate'
|
Где putdate - дата добавления ссылки | |
|
|
|
|
|
|
|
для: ZC
(21.04.2005 в 22:07)
| | К сожалению дата нехранится
Возникла тут проблемка с постраничной навигацией нехорошие ошибки кидает код взят со статьи этого сайта и переделан под себя.
Notice: Undefined index: in z:\home\test1.ru\www\index2.php on line 7
Fatal error: Unsupported operand types in z:\home\test1.ru\www\index2.php on line 12
| и сам код
<?php
// Устанавливаем соединение с базой данных
include "config.php";
// Переменная хранит число сообщений выводимых на странице
$num = 20;
// Извлекаем из URL текущую страницу
$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result = mysql_query("SELECT COUNT(*) FROM links");
$links = mysql_fetch_row($result);
// Находим общее число страниц
$total = intval(($links - 1) / $num) + 1;
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
// Вычисляем начиная к какого номера
// следует выводить сообщения
$start = $page * $num - $num;
// Выбираем $num сообщений начиная с номера $start
$result = mysql_query("SELECT * FROM links LIMIT $start, $num");
// В цикле переносим результаты запроса в массив $postrow
while ( $postrow[] = mysql_fetch_array($result))
echo "<table>";
for($i = 0; $i < $num; $i++)
{
echo "<tr>
<td>".$postrow[$i]['gif']."</td>
<td>".$postrow[$i]['link']."</td></tr>";
}
echo "</table>";
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href= ./page?page=1><<</a>
<a href= ./page?page='. ($page - 1) .'><</a> ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' <a href= ./page?page='. ($page + 1) .'>></a>
<a href= ./page?page=' .$total. '>>></a>';
// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 2 > 0) $page2left = ' <a href= ./page?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href= ./page?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 2 <= $total) $page2right = ' | <a href= ./page?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href= ./page?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
// Вывод меню
echo "$pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage";
?>
|
| |
|
|
|
|
|
|
|
для: sata
(21.04.2005 в 22:18)
| |
<?
#########################################################
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "phpcom";
$dbc = mysql_connect($db_host, $db_user, $db_pass); // Коннект к бд
$dbs = mysql_select_db($db_name); // Выбор бд
#########################################################
$max_mess = 10; /*Максимальное кол-во*/
#########################################################
if (empty($page)) $page = 0;
if ($page < 0) $page = 0;
#########################################################
/* Общее кол-во */
#########################################################
$count_query = 'select count(*) from 'ip' where 1 ;';
$total_mess = mysql_query ($count_query);
$total_count = mysql_fetch_array ($total_mess);
$count = $total_count ['count(*)'];
##########################################################
$query = mysql_query("select * from 'ip' where 1 LIMIT ".$page." , ".$max_mess.";");
while ($otvet = mysql_fetch_array($query))
{
print $otvet[ip];
print '<br>';
}
print "<br/>";
################################
$link = $count / $max_mess;
$n = substr($page,0,1);
for ($i=0; $i < $link; $i++)
{
if ((($i - $n)*10) == $page)
{
print '['.($i + 1).']';
}
else
{
print '<a href="'.$PHPSELF.'?page=';
if ($page >= $count)
{
print (($page + $i)* $max_mess);
}
else
{
$page = 0;
print (($page + $i)* $max_mess);
}
print '">['.($i + 1).']</a>';
}
if (($i+1) < $link) print "-";
}
#################################
?>
|
Могу придложить такой вариант только он сыроват. | |
|
|
|
|
|
|
|
для: Akira
(21.04.2005 в 22:46)
| | Ну вот типа конечный рабочий вариант кому надо код почти весь не мой а найден на просторах интернета подделан до рабочей стадии и функционирует :)
<?
function link_bar($page, $pages_count)
{
for ($j=1;$j<=$pages_count;$j++)
{
// Вывод ссылки
if ($j==$page) echo ' <a style="color: #808000;" ><b>'.$j.'</b></a> ';
else echo ' <a style="color: #808000;" href='.$_SERVER['PHP_SELF'].'?page='.$j.'>'.$j.'</a> ';
// Выводим разделитель после ссылки, кроме последней
// например, вставить "|" между ссылками
if ($j!=$pages_count) echo ' ';
}
} // Конец функции
// Подключение к базе данных
$server="localhost";
$dbname="links";
$user="root";
$pass="";
if (!mysql_connect($server,$user,$pass)){echo "Не могу подключится к базе данных. Проверьте правильность пароля, логина и имя базы"; exit;}
mysql_select_db($dbname);
// Подготовка к постраничному выводу
$perpage = 11; // Количество отображаемых данных из БД (11==>выводит 10)
if (empty($_GET['page']) or $_GET['page']<=0) $page = 1;
else $page = (int)$_GET['page']; // Считывание текущей страницы
// Общее количество информации
$count = mysql_numrows(mysql_query('SELECT * FROM links')) or die('Error! Записей не найдено!');
$pages_count = ceil($count / $perpage); // Количество страниц
// Если номер страницы оказался больше количества страниц
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page-1) * $perpage; // Начальная позиция, для запроса к БД
//
link_bar($page, $pages_count);
//
// Вывод информации из базы данных
$result = mysql_query('SELECT * FROM links LIMIT '.$start_pos.', '.$perpage) or die('Error!');
echo '<br><center><b>Каталог ссылок</b><br><br>';
while ($row = mysql_fetch_array($result)) echo "<table><tr><td><center>$row[gif]</center></td><td><center>$row[link]</center></td></tr></table>";
echo '</center>';
?>
|
| |
|
|
|