Нова страница...

cold_zero

Registered
Някой може ли да ми даде код за показване на 10 файла в една страница. В смисъл искам да ми зарежда едни HTML файлове и те да са по 10 на страница. Без да чете от MySQL... Малко тъпо го обясних за което се извинявам
 

Admin

Registered
cold_zero каза:
Някой може ли да ми даде код за показване на 10 файла в една страница. В смисъл искам да ми зарежда едни HTML файлове и те да са по 10 на страница. Без да чете от MySQL... Малко тъпо го обясних за което се извинявам

Как ще ги зарежда?
В какъв смисъл?
 

cold_zero

Registered
Фактически чете файловете от папка posts и ги извежда

Код:
<?
for ($i=$broi; $i>0; $i--) {
 if (is_file("posts/".$i.".php")) {
 include "posts/".$i.".php";
 echo "<a href='edit.php?file=".$i."'>Отговор</a><hr color='#BAC97F' size='1'>";
 }
}
?>

Това е което има в index.php друго е дизайн и от db.php извлича само номера на поста...

Искам да направя да извежда само 10 файла, а другите на нови страници.
 

Slavei

Registered
cold_zero каза:
Фактически чете файловете от папка posts и ги извежда

Код:
<?
for ($i=$broi; $i>0; $i--) {
 if (is_file("posts/".$i.".php")) {
 include "posts/".$i.".php";
 echo "<a href='edit.php?file=".$i."'>Отговор</a><hr color='#BAC97F' size='1'>";
 }
}
?>

Това е което има в index.php друго е дизайн и от db.php извлича само номера на поста...

Искам да направя да извежда само 10 файла, а другите на нови страници.

Това върши ли ти работа?
http://web-tourist.net/login/login/view.php?st=740
 

cold_zero

Registered
То тва вади списък с файлове които има в директорията...

Аз искам да си зарежда PHP файловете от директорията, защото в тях се съдържа информация, тоест нещо като комнетари са те...
 

Slavei

Registered
cold_zero каза:
То тва вади списък с файлове които има в директорията...

Аз искам да си зарежда PHP файловете от директорията, защото в тях се съдържа информация, тоест нещо като комнетари са те...

уф, пак не съм дочел..
добре какъв е проблема? Имаш код с който можеш да листнеш файловете от съответната папка. Взимаш логиката от първия линк, но вместо да се конектва към базата и да ти изплюва съответните 10 реда от базата, да ти отваря въответните 10 файла...?
 

cold_zero

Registered
А точно да отваря най-новите десет файла. Файловете са номерирани... 1,2,3...20 и т.н. с по-голямата цифра е най-новия :p
 

cold_zero

Registered
Сега да обясна като хората какво ми трябва :roll:
Значи кода който го има тук в сайта е за MySQL:

Код:
<?php
$user=""; //user на базата данни
$password=""; //pass на базата данни
$database=""; //име на базата данни
mysql_connect(localhost,$user,$password);
mysql_select_db($database) or die( "Unable to select database");





// определяме колко реда да ни показва. В случая 20 на страница.
$broinastranica = 20;

// от коя страница да почне да показва.Може да искаме да е от втора или от последна.
$pageNum = 1;

// ако има получени данни $_GET['page'] ще покаже страницата с номер $_GET['page']
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}

//тука определяме кои редове ще се показват - примерно ако $_GET['page']=2
// ще покаже от 20 до 40-ти ред.
$redove = ($pageNum - 1) * $broinastranica;
//заявката ще върне само посочените редове - примерно от 20 до 40 в зависимост от $_GET['page']
$query = " SELECT id,zag,user FROM statia " .
" LIMIT $redove, $broinastranica";
$result = mysql_query($query) or die('Error, query failed');

echo "<table border=1>";
// print-ваме посочените редове в таблица.
while($row = mysql_fetch_array($result))
{
echo '<tr><td>'.$row['id'].'</td><td>'.$row['user'].'</td><td>'.$row['zag'].'</td></tr>';
}

echo"</table>";


// проверяваме таблицата колко редове има
$query = "SELECT COUNT(zag) AS numrows FROM statia";
$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];


$maxPage = ceil($numrows/$broinastranica);

$self = $_SERVER['PHP_SELF'];
$nomeranastranici = '';

for($page = 1; $page <= $maxPage; $page++)
{
if ($page == $pageNum)
{
$nomeranastranici .= " $page ";
}
else
{
$nomeranastranici .= " <a href=\"$self?page=$page\">$page</a> ";
}
}



// създаване на ликовете [предишна] [следваща]
// както и линковете [първа] и [последна]


if ($pageNum > 1)
{
$page = $pageNum - 1;
$predishna = " <a href=\"$self?page=$page\"> [<<<<<] </a> ";

$parva = " <a href=\"$self?page=1\">[първа]</a> ";
}
else
{
$predishna = ' ';
$parva = ' ';
}

if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$sledvashta = " <a href=\"$self?page=$page\"> [>>>>>] </a> ";

$posledna = " <a href=\"$self?page=$maxPage\">[последна]</a> ";
}
else
{
$sledvashta = ' ';
$posledna = ' ';
}

// показваме
echo $parva . $predishna . $nomeranastranici . $sledvashta . $posledna;





?>

Трябва ми същия код, но да не зарежда информацията от MySQL, а от файлове...
 

sizif

Registered
Здравей!

Преди време с помощта на Админ бях писал подобен код. Ето ти го във вид, който включва определен брой файлове от една директория и ги страницира. Намерих кода в личния си компютър, но го има и в други теми тук, даже някъде го бях предложил и за организирането на проста галерия.

В този си вид включва файловете:

<?
$g=opendir("/home/www/probna.com/direktoriq_s_fajlovete");
while ($fajl= readdir( $g ) )
{
if(!is_dir($fajl) && !is_link($fajl) && $fajl != ".." && $fajl != ".") {
$fm[]=$fajl;
}
}

closedir ($g);


sort($fm) ; // за нуждата от тази функция виж по-долу


$broinastranica = 5;
$pageNum = 1;

if(isset($_GET['page']))
{
$pageNum =$_GET['page'];
$start = ($pageNum - 1) * $broinastranica;
}
else
{
$start=0;
}



$kolko=count ($fm);

for($i = $start; $i < ($start+$broinastranica); $i++){
$z= $fm[$i];
@include("/home/www/probna.com/direktoriq_s_fajlovete/$z");
if ($i==$kolko) break;
}


$maxPage = ceil($kolko/$broinastranica);

$self = $_SERVER['PHP_SELF'];
$nomeranastranici = '';

for($page = 1; $page <= $maxPage; $page++)
{
if ($page == $pageNum)
{
$nomeranastranici .= " $page ";
}
else
{
$nomeranastranici .= " <a href=\"$self?page=$page\" >$page</a> ";
}
}

if ($pageNum > 1)
{
$page = $pageNum - 1;
$predishna = " <a href=\"$self?page=$page\" > << </a> ";

$parva = " <a href=\"$self?page=1\" >FIRST page</a> ";
}
else
{
$predishna = ' ';
$parva = ' ';
}

if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$sledvashta = " <a href=\"$self?page=$page\" > >> </a> ";

$posledna = " <a href=\"$self?page=$maxPage\" >LAST page</a> ";
}
else
{
$sledvashta = ' ';
$posledna = ' ';
}

echo $parva . $predishna . $nomeranastranici . $sledvashta . $posledna;
?>



Кода работи, ползвал съм го за какво ли не, пред инклуд има @ защото изписва предупреждение (вече не помня причината, мисля че се появяваше в случите, когато остатъчните файлове са по-малко от зададения брой за листване), за всеки случй е сложена и командата брейк, която ще спре цикъла след достигане на крайния брой файлове.
Друго, което си спомням: реда с кода за отделянето на файловете от директориите го бях взел от някъде, премахва служебите директории (тези с "." и ".."), но останалите попадат в масива и сигурно ще се опитва да ги листва и ще дава грешка, така че в директорията ти трябва да има само файлове. Доколкото разбрах искаш файла с кода да го сложиш в директорията - този поне трябва да стои извън нея.
Преди да го сложиш някъде, огледай го за пропуснати затварящи или отварящи знаци (кавички, скоби), защото го изкрах от по-голям скрипт и може да съм премахнал нещо по невнимание.

Това е. Дано ти свърши работа. Успех!

ПП: Същия код с малко по-ясни обянснения: http://www.web-tourist.net/forum/viewtopic.php?t=2446

Сещам се, че ако търсиш поредност, може да ти се наложи и някакво сортиране, защото функцията readdir(); чете съдържанието на директорията в случаен ред, а в такъв ред ще попаднат и в масива, който ги съхранява - fm[]. Не зная как подреждаш файловете в директорията, но за да няма разминаване можеш да добавиш един от тези редове:

sort($fm) ;-за да подреди имената на файловете от най-малко към най-голямо или напр: 01, 07, 100,100а, 22, а, bа, cа, сz

rsort($fm);- за да ги подреди в низходящ ред. По подразбиране РНР сортира имената по азбучен ред, а числата по големина.

Ако има проблем, пиши! След като един месец не ми оставаше време да помисля за код, смятам тези дни да си наваксам :)
 

Горе