[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Постраничный вывод
dzisay
Прошу помощи владеющих php.
Имеется страничка index.php,
к ней "приинклужены" короткие news1.php, news2.php, news3.php, news4.php, news5.php ну и так далее.
Возможно ли средствами PHP на index.php выполнить постраничный вывод этих news? Заранее благодарен за отзывчивость.



Спустя 11 минут, 16 секунд (19.01.2011 - 19:27) Invis1ble написал(а):
Что-то типа этого:
for ($i = 0; $i < 10; $i ++)
if (file_exists('news' . $i))
echo '<a href="?page="' . $i . '>' . $i . '</a>';

if (isset($_GET['page']) && file_exists('news' . $_GET['page']))
include 'news' . $_GET['page'];

Спустя 27 минут, 41 секунда (19.01.2011 - 19:55) dzisay написал(а):
извиняюсь за ламерство, а нельзя ли дописать чуточку комментариев в php слаб :huh:

<body>
<
div>
<?php include("news16.php")?>
<?php
include("news15.php")?>
...
<?php include("news03.php")?>
<?php
include("news02.php")?>
<?php
include("news01.php")?>
</div>
</
body>

куда вставлять сей мудрёный код? :blink:

Спустя 8 минут, 12 секунд (19.01.2011 - 20:03) Invis1ble написал(а):
dzisay
Я так понимаю, что ты хочешь, чтоб на одной странице (N) выводилось содержимое одного файла newsN.php ?

Спустя 10 минут, 46 секунд (19.01.2011 - 20:14) VELIK505 написал(а):
Или ты хочешь наверное Постраничную навигацию на PHP

Спустя 1 минута, 48 секунд (19.01.2011 - 20:16) dzisay написал(а):
Не совсем. На одной страницы располагалось последние , ну то есть смотря по моему коду: news16.php, news15.php, news14.php, news13.php, news12.php, а под ними панель <1 2 3 4>. При нажатии на <2> открывались на одной странице news11.php, news10.php, news09.php, news08.php, news07.php. На <3> ews06.php, news05.php, news04.php, news03.php, news02.php, ну а на <4> все что осталось.
И потом когда я например добавил news17.php всё это дело сдвигалось, думаю принцип понятен.

Спустя 24 секунды (19.01.2011 - 20:16) alex12060 написал(а):
dzisay

Какой изврат делать так сайт)
Ну ладно, каждому свое)


$p = trim($_GET['p']);
for ($i=$p; $i<11; $i++) {
if (file_exists('news'.$i.'.php')) {
require_once('news'.$i.'.php');
}
}

echo '<a href="index.php?p='.($p+10).'>Далее</a>;

Спустя 5 минут, 25 секунд (19.01.2011 - 20:22) dzisay написал(а):
Цитата (VELIK505 @ 19.01.2011 - 17:14)
Или ты хочешь наверное Постраничную навигацию на PHP

ну на данном примере я так понял нужно создавать базу данных, хотелось бы как нибудь без нее:huh:

Спустя 2 минуты, 53 секунды (19.01.2011 - 20:24) dzisay написал(а):
alex12060
покажи пожалуйста конкретно куда что писать

Спустя 4 минуты, 34 секунды (19.01.2011 - 20:29) alex12060 написал(а):
dzisay

Не, там не так сделано)
Ща обмозгую, дам код)

Спустя 6 минут, 58 секунд (19.01.2011 - 20:36) dzisay написал(а):
Буду рад.
Такой извратный подход к написанию новостей спровоцирован тем, что:
во-первых отсутствие баз, в которых я вообще бум-бум;
во-вторых скрипты рейтинга и комментариев которые стоят на всем сайте, на много проще прикрутить к отдельным страничкам news.php.
в-третьих мои скудные знания позволят полностью контролировать внешний вид и работу сайта smile.gif

Спустя 24 секунды (19.01.2011 - 20:36) Invis1ble написал(а):
dzisay
$items = glob(__DIR__, GLOB_NOSORT);

foreach ($items as $item)
if (!is_dir($item) && preg_match('#news\d*?\.php#ui', $item))
$news[] = $item;

$cnt = count($news);

foreach ($news as $i => $new)
{
$p = mb_strlen($i, 'utf-8') < 2 ? '0' . $i : $i;

echo '<a href="?page="' . $p . '>' . ($cnt - $i + 1) . '</a>';
}

if (isset($_GET['page']) && file_exists('news' . $_GET['page']))
include 'news' . $_GET['page'] . '.php';


UPD Подправил

еще раз. оптимизировал =)

Спустя 6 минут, 4 секунды (19.01.2011 - 20:42) dzisay написал(а):
:huh: и куда это вставлять в моём несчастном коде?

<body>
<
div>
<?php include("news16.php")?>
<?php
include("news15.php")?>
...
<?php include("news03.php")?>
<?php
include("news02.php")?>
<?php
include("news01.php")?>
</div>
</
body>

Спустя 5 минут (19.01.2011 - 20:47) Invis1ble написал(а):
dzisay
Цитата
и куда это вставлять в моём несчастном коде?

вместо
Цитата
<?php include("news16.php")?>
<?php include("news15.php")?>
...
<?php include("news03.php")?>
<?php include("news02.php")?>
<?php include("news01.php")?>


Спустя 4 минуты, 54 секунды (19.01.2011 - 20:52) dzisay написал(а):
ругается на
Warning: Invalid argument supplied for foreach() in www\x\index.php on line 23
 
foreach ($news as $i => $new)

Спустя 15 минут, 20 секунд (19.01.2011 - 21:08) Invis1ble написал(а):
dzisay
$items = glob(__DIR__, GLOB_NOSORT);
var_dump($items);
$news = array();

foreach ($items as $item)
if (!is_dir($item) && preg_match('#news\d*?\.php#ui', $item))
$news[] = $item;

$cnt = count($news);

foreach ($news as $i => $new)
{
$p = mb_strlen($i, 'utf-8') < 2 ? '0' . $i : $i;

echo '<a href="?page="' . $p . '>' . ($cnt - $i + 1) . '</a>';
}

if (isset($_GET['page']) && file_exists('news' . $_GET['page']))
include 'news' . $_GET['page'] . '.php';

что выдает?

Спустя 1 минута, 8 секунд (19.01.2011 - 21:09) dzisay написал(а):
Может я что не так делаю? Вершиной помощи был бы архивчик с простейшим рабочим примером из 4 файлов index.php, news3.php, news2.php, news1.php с постраничкой по 2 файла. С меня плюсик rolleyes.gif

Спустя 4 минуты, 29 секунд (19.01.2011 - 21:13) dzisay написал(а):
выдаёт:

array(1) { [0]=> string(29) "Z:\home\сайт_мой\www\x" }

Спустя 7 минут, 54 секунды (19.01.2011 - 21:21) Invis1ble написал(а):
dzisay
вобще-то, на этом форуме, как правило, не практикуется бесплатное написание рабочих скриптов ) Здесь обычно люди помагают или дают советы. Но поскольку мне сейчас нечем по сути заняться - я фактически делаю все за тебя =)

$items = glob(dirname(__FILE__) . '/*', GLOB_NOSORT);
var_dump($items);
$news = array();

foreach ($items as $item)
if (!is_dir($item) && preg_match('#news\d*?\.php#ui', $item))
$news[] = $item;

$cnt = count($news);

foreach ($news as $i => $new)
{
$p = mb_strlen($i, 'utf-8') < 2 ? '0' . $i : $i;

echo '<a href="?page="' . $p . '>' . ($cnt - $i + 1) . '</a>';
}

if (isset($_GET['page']) && file_exists('news' . $_GET['page']))
include 'news' . $_GET['page'] . '.php';


а щас?

Спустя 8 минут, 3 секунды (19.01.2011 - 21:29) dzisay написал(а):
ясно, но я и этому жутко рад.
выводит

array(16) { [0]=> string(39) "Z:\home\mr-freeman.info\www\x/index.php" [1]=> string(39) "Z:\home\mr-freeman.info\www\x/news1.php" [2]=> string(40) "Z:\home\mr-freeman.info\www\x/news10.php" [3]=> string(40) "Z:\home\мой_сайт\www\x/news11.php" [4]=> string(40) "Z:\home\мой_сайт\www\x/news12.php" [5]=> string(40) "Z:\home\мой_сайт\www\x/news13.php" [6]=> string(40) "Z:\home\мой_сайт\www\x/news14.php" [7]=> string(40) "Z:\home\мой_сайт\www\x/news15.php" [8]=> string(39) "Z:\home\мой_сайт\www\x/news2.php" [9]=> string(39) "Z:\home\мой_сайт\www\x/news3.php" [10]=> string(39) "Z:\home\мой_сайт\www\x/news4.php" [11]=> string(39) "Z:\home\мой_сайт\www\x/news5.php" [12]=> string(39) "Z:\home\мой_сайт\www\x/news6.php" [13]=> string(39) "Z:\home\мой_сайт\www\x/news7.php" [14]=> string(39) "Z:\home\мой_сайт\www\x/news8.php" [15]=> string(39) "Z:\home\мой_сайт\www\x/news9.php" } 1615141312111098765432

при этом вся надпись

1615141312111098765432

является ссылкой на

http://mr-freeman.info/x/?page=

Спустя 3 минуты, 16 секунд (19.01.2011 - 21:33) dzisay написал(а):
хотелось вы уточнить что на первой и на последующих страницах выводилось по несколько news.php

Спустя 25 минут, 54 секунды (19.01.2011 - 21:58) Invis1ble написал(а):
dzisay
<?php
$items = glob(dirname(__FILE__) . '/*', GLOB_NOSORT);

$news = array();

foreach ($items as $item)
if (!is_dir($item) && preg_match('#news\d*?\.php#ui', $item))
$news[] = $item;

$cnt = count($news);

echo '<div>';

foreach ($news as $i => $new)
{
$p = $cnt - $i;
$p = mb_strlen($p, 'utf-8') < 2 ? '0' . $p : $p;

echo '<a href="?page=' . $p . '">' . ($i + 1) . '</a> ';
}

echo '</div>';

if (isset($_GET['page']) && file_exists('news' . $_GET['page'] . '.php'))
include 'news' . $_GET['page'] . '.php';
?>

Спустя 9 минут, 39 секунд (19.01.2011 - 22:08) dzisay написал(а):
работает, но на каждой из страниц хотелось бы, как я говорил выше, выводить по 5 news.php (то есть news16.php, news15.php, news14.php, news13.php, news12.php одна за другой)
ну а плюсик уже смело могу поставить smile.gif

Спустя 3 часа, 57 минут, 4 секунды (20.01.2011 - 02:05) Invis1ble написал(а):
<?php
$news = glob(dirname(__FILE__) . '/news*.php', GLOB_NOSORT);
$cnt = count($news);

echo '<div>';

for ($i = 0; $i < $cnt; $i += 5)
{
$p = ($i / 5 + 1);
echo '<a href="?page=' . $p . '">' . $p . '</a> ';
}

echo '</div>';

if (isset($_GET['page']))
{
$p = $cnt + 5 - $_GET['page'] * 5;

for ($i = $p; $i > $p - 5; $i --)
{
$n = mb_strlen($i, 'utf-8') < 2 ? '0' . $i : $i;

if (file_exists('news' . $n . '.php'))
include 'news' . $n . '.php';
}
}

?>

Спустя 6 часов, 39 минут, 20 секунд (20.01.2011 - 08:44) dzisay написал(а):
Скрипт прекрасно работает, огромное спасибо за труд wink.gif на ЛС ответил
Быстрый ответ:

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