[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: постраничный вывод помогите
Гость_Oleg
нужна постраничная навигация + вывод в две колонки
вот скрипт он выводит то очень много то по 1 на стр. нужно чтоб например: в две колонки по 4 новости были.


<?php
// Устанавливаем соединение с базой данных
include "connect.php";
// Переменная хранит число сообщений выводимых на станице
$num = 2;
// Извлекаем из URL текущую страницу
$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result = mysql_query("SELECT COUNT(*) FROM options");
$posts = mysql_result($result, 0);
// Находим общее число страниц
$total = intval(($posts - 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 options LIMIT $start, $num");
// В цикле переносим результаты запроса в массив $postrow
while ( $postrow[] = mysql_fetch_array($result))
?>




<?php

echo "<table><tr>";
for($i = 0; $i < $num; $i++)
{
echo "
<td>"
.$postrow[$i]['img']."</td>
<td>"
.$postrow[$i]['adress']."</td>";
if ($i == '2')
{
$i = '0';
echo "</tr><tr>";
}
}

echo "</table>";
?>



<?php

// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href=?page=1><<</a>
<a href=?page='
. ($page - 1) .'><</a> ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' <a href=?page='. ($page + 1) .'>></a>
<a href=?page='
.$total. '>>></a>';

// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 2 > 0) $page2left = ' <a href=?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href=?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 2 <= $total) $page2right = ' | <a href=?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href=?page='. ($page + 1) .'>'. ($page + 1) .'</a>';

// Вывод меню
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;

?>




Спустя 14 минут, 11 секунд (26.08.2010 - 11:47) Lenarfate написал(а):
вот тут полно постраничек http://phpforum.ru/index.php?showtopic=22493 smile.gif

Спустя 4 минуты, 33 секунды (26.08.2010 - 11:51) Гость_Oleg написал(а):
всетки может кто знает я думаю вот тут проблема

for($i = 0; $i < $num; $i++)

<?php 
echo "<table><tr>";
for($i = 0; $i < $num; $i++)
{
echo "
<td>"
.$postrow[$i]['img']."</td>
<td>"
.$postrow[$i]['adress']."</td>";
if ($i == '2')
{
$i = '0';
echo "</tr><tr>";
}
}

echo "</table>";
?>

Спустя 13 минут, 59 секунд (26.08.2010 - 12:05) Lenarfate написал(а):
зачем делать вот это $postrow[] = mysql_fetch_array($result) ? я про скобки.
и для чего тебе еще один цикл внутри другого?

Спустя 2 минуты, 33 секунды (26.08.2010 - 12:08) Rivalryzerg написал(а):
Порядок отображения слева направо или сверху вниз?
типа
1 2
3 4
или
1 3
2 4
?

Спустя 4 минуты, 9 секунд (26.08.2010 - 12:12) Гость_Oleg написал(а):
я не знаю я пытался переделать
порядок
1 2
3 4

вобщем вот скрипт он выводит отлично все но не в колонки как поправить чтоб в колонки выводил


<?php
include "config.php";
$num = 25;
$page = $_GET['page'];
$result = mysql_query("SELECT COUNT(*) FROM post");
$posts = mysql_result($result, 0);
$total = intval(($posts - 1) / $num) + 1;
$page = intval($page);
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;
$result = mysql_query("SELECT * FROM post LIMIT $start, $num");
while ( $postrow[] = mysql_fetch_array($result))
?>

<?php

echo "<table>";
for($i = 0; $i < $num; $i++)
{
echo "<tr>
<td>"
.$postrow[$i]['name']."</td>
<td>"
.$postrow[$i]['time']."</td></tr>
<tr><td colspan=
\"2\">".$postrow[$i]['text']."</td></tr>";
}
echo "</table>";
?>

<?php

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;

?>

Спустя 41 минута, 16 секунд (26.08.2010 - 12:53) Rivalryzerg написал(а):
Выборка из базы я так понимаю корректно работает и в переменной $postrow как раз хранятся нужные записи?

По отображению я бы предложил отойти наконец от таблиц и вывести блочно

<ul>
<?php
foreach ($postrow as $post) { ?>
<li>
<?php
echo $post['text'] ?>
</li>
<?php
} ?>
</ul>



Стили:
ul li {
display: inline-block;
vertical-align: top;
width: 50%;
}

Спустя 2 минуты, 9 секунд (26.08.2010 - 12:55) Bezdna написал(а):
В этом же разделе прикреплённая тема.
http://phpforum.ru/index.php?showtopic=19919

Спустя 25 минут, 11 секунд (26.08.2010 - 13:20) Гость_Oleg написал(а):
не получаеться, если у вас есть сайт и вы програмист что вы делаете в этом случае никто не может нормально ответить мне

Rivalryzerg
тож не получилось

Спустя 15 минут, 8 секунд (26.08.2010 - 13:36) Rivalryzerg написал(а):
Oleg, из-за width: 50% не работает. Выставите ширину в пикселях, чтобы в нужную область помещалось только 2 ячейки.

Кстати какие браузеры используете?

Спустя 1 час, 7 минут, 44 секунды (26.08.2010 - 14:43) Гость_Oleg написал(а):
Rivalryzerg
mozilla opera
плиз, можешь весь пример вместе показать ?
чтоб в две колонки выводилось ?

у меня с твоим кодом выводиться но то оч много то слипаються : (


[php]<?php
// Устанавливаем соединение с базой данных
include "connect.php";
// Переменная хранит число сообщений выводимых на станице
$num = 5;
// Извлекаем из URL текущую страницу
$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result = mysql_query("SELECT COUNT(*) FROM options");
$posts = mysql_result($result, 0);
// Находим общее число страниц
$total = intval(($posts - 1) / $num) + 1;
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
// Вычисляем начиная к какого номера
// следует выводить сообщения
$start = ($page - 1) * $num;
// Выбираем $num сообщений начиная с номера $start
$result = mysql_query("SELECT * FROM options LIMIT $start, $num");
// В цикле переносим результаты запроса в массив $postrow
while ( $postrow[] = mysql_fetch_array($result))
?>



<style type="text/css">
ul li {
display: inline-block;
vertical-align: top;
width: 300px;
}

</style>
<ul>
<?php foreach ($postrow as $post) { ?>
<li>
<?php echo $post['kod'] ?>
</li>
<?php } ?>
</ul>


<?php
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href=?page=1><<</a>
<a href=?page='. ($page - 1) .'><</a> ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' <a href=?page='. ($page + 1) .'>></a>
<a href=?page=' .$total. '>>></a>';

// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 2 > 0) $page2left = ' <a href=?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href=?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 2 <= $total) $page2right = ' | <a href=?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href=?page='. ($page + 1) .'>'. ($page + 1) .'</a>';

// Вывод меню
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;

?>[php]

Спустя 23 минуты, 45 секунд (26.08.2010 - 15:07) Rivalryzerg написал(а):
Я к сожалению использую другие инструменты для создания постраничной навигации.
Если выводит то много то мало - это проблема в коде. Я лишь показал как можно выводить список объектов, когда они уже сформированы в массив
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.