Помогни ни да направим Uroci.net по - богат! Добави урок

Извеждане и подреждане на резултати от файл + странициране

PHP » PHP
HunteR   трудност:    видян: 7092

Така ето какво представлява урокът.
Примерно имаме файла example.txt.
Той съдържа:

 

Stoqn|15
Go6o|123
Pe6o|3
Hristo|33
Rumen|10
Nqkaf_si|333
Druga|222

 

Така както виждате той се съдържа от имена и цифри.
От ляво на "|" са имената на потребителите примерно, а от дясно да кажем са точките им :)
Целта ни е да направим странициране и подреждане по точки.

Ето как ще стане това. Просто си направете един файл с подобни на горните данни и страница с долният код, който ще изкарва тези данни.

 

<?php
$file = "example.txt"; // тук пишете файла от, който ще четем
$str = 3; // по колко резултата да изкарва на страница

// тук взимаме информацията от файла
$filesize = @filesize($file);
$fp = @fopen ($file ,"r");
$text = @fread($fp,$filesize);
@fclose($fp);

$razdelqne = explode("n",$text); // разделяме файла на редове
$kolkooo = count($razdelqne); // преброяваме колко редове съдържа файла
$i = 0;
while($i < $kolkooo) {
$line = explode("|",$razdelqne[$i]);
$masiv["$line[0]"] = $line[1]; // вкарваме всяко едно име с неговите точки в масив
$i++;
}
natsort($masiv); // подреждаме масива по-големина на точките
$masiv = array_reverse($masiv); // обръщаме стойностите в масива.
// Ако желаете да започне да показва потребителтие с най-малко точки просто сложете "#" пред горната функция
// Пример: #$masiv = array_reverse($masiv);


$masiv = array_chunk($masiv, $str,TRUE); // разделяме масива на части за да се осъществи страницирането

// определяме на колко страници да извеждаме резултатите
$stranici = floor($kolkooo / $str);
if (($kolkooo % $str) > 0) { $stranici++; }

// правим проверка за избраната страница
if (isset($_GET['page']) && is_numeric($_GET['page']) && $_GET['page'] <= $stranici) {
$page = $_GET['page']; // присвояваме избраната страница
} else {
$page = 1; // ако не сме избрали страница се задава по подразбиране
}

$m = $page - 1; // определяме от коя стойност да започне масива
foreach ($masiv[$m] as $key => $value) {
echo "Потребител: <b>$key</b>, Точки: <b>$value</b><br />"; // изкарваме резултатите Може да ги променяте.
}

// Тук извеждаме страниците
echo "<br><br>Страници: ";
for ($i=1;$i<=$stranici;$i++) {
if ($page != $i) {
echo "<a href="?page=$i">$i</a> ";
} else {
echo "$i ";
}
}
?>

 

 

Надявам се урокът да Ви е бил полезен :)


Урокът е авторски и забранявам преписването му в други сайтове без мое съгласие!



Коментари (5)

HunteR на 04.08 2008 в 18:40ч.
Хмм открих грешка, която сайта автоматично предизвиква с добавянето на урока.

Този ред: $masiv[$line[0> = $line[1];
Го направете така: $masiv["$line[0]"] = $line[1];
cezarbg на 14.08 2008 в 13:46ч.
PHP кода къде се слага, в първата ли страница или в отделен php документ? Ако се слага в нов документ как ще се казва той?
HunteR на 15.08 2008 в 15:41ч.
Кода се слага там където искаш да ти показва потребителите.
Примерно ако го сложиш във файл members.php, ако го заредиш и всичко си нагласил по кода, трябва да ти покаже потребителите с техните точки примерно.
cezarbg на 19.08 2008 в 17:20ч.
Това нещо при мен не трагва. Излиза ми нещо на маймуница.
HunteR на 20.08 2008 в 01:36ч.
Ми няма да е зле да сложиш и:

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com