|
|
|
| Столкнулся с такой проблемой! у меня есть файл, в нем такие строчки
muzik|12.01.06|
muzik|11.01.06|
devuwki|14.01.06|
muzik|11.01.06|
devuwki|14.01.06|
devuwki|14.01.06|
muzik|11.01.06|
|
Ну вот я хочу сделать разбиение на страницы по 10 на каждую! Только мне не нужны все строчки, а только те где девушки! Надо подчитать их количество и уже по ним сделать разбиение! как это сделать? Помогите плиз, для сайта надо http://midav.ilva.lv/?boyanketi | |
|
|
|
|
|
|
|
для: midav
(19.01.2006 в 20:36)
| | Для начала следует получить массив в котором будут только девушки (хм... половая дискриминация). Что-то похожее можно посмотреть в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=11708: читаем содержимое файла при помощи функции file() в массив $arr, каждый элемент которого соответствует отдельной строке. Затем строку разбиваем при помощи функции explode() и формируем массив
<?php
$arr = file("guest.txt");
$i = 0;
foreach($arr as $line)
{
list($sex, $date) = explode("|", $line);
if($sex == 'devuwki')
{
$temp[$i]['devuwki'] = $sex;
$temp[$i]['date'] = $date;
$i++
}
}
?>
|
Посмотреть пример постраничной навигации, в основе которой лежит массив можно в примере по ссылке http://www.softtime.ru/scripts/pager.php | |
|
|
|
|
|
|
|
для: cheops
(20.01.2006 в 01:06)
| | ну как подчитать общее количество девушек я знал, а вот как именно сделать разбиение на страницы вот тут у меня трудности | |
|
|
|
|
|
|
|
для: midav
(20.01.2006 в 01:32)
| | простите за флуд! midav ты случайно на wr.kovostok не сидиш ?? | |
|
|
|
|
|
|
|
для: Panker
(20.01.2006 в 01:35)
| | да сижу, но там бывает фиг дождешься | |
|
|
|
|
|
|
|
|
для: cheops
(20.01.2006 в 01:06)
| | Опять же возвращаясь к проблеме больших файлов предлагаю такой вариант. Написал на скорую руку, но вроде работает нормально и главное быстро.
<?
function GetCount($filename)
{
$f = fopen($filename,"r");
$count = 0;
while(!feof($f))
{
$buf = fgets($f);
if(substr($buf,0,7) == "devuwki")
$count++;
}
fclose($f);
return $count;
}
function GetRecords($filename,$from,$num)
{
$f = fopen($filename,"r");
$i = $j = 0;
unset($retar);
while(!feof($f) && $i != $num)
{
$buf = fgets($f);
if(substr($buf,0,7) == "devuwki")
{
if($j >= $from)
{
$retar[] = trim($buf);
$i++;
}
$j++;
}
}
return $retar;
}
$num = 4;
$filename = "file.txt";
if($ar = GetRecords($filename,$page,$num))
foreach($ar as $value)
{
echo $value."<br>";
}
$count = GetCount($filename);
for($i=0;$i<$count;$i+=$num)
echo "<a href=file.php?page=$i>$i</a> ";
?>
|
Функция GetRecords возвращает из файла $filename $num строк начиная с $from.
Функция GetCount считает кол-во девушек | |
|
|
|
|
|
|
|
для: Евгений Петров
(20.01.2006 в 02:07)
| | я тоже там сижу )) но там не подскаживаю! тут подсказывают! кстати ты случайно не с того форума об этом узнал а?? а то я там его так рекламирвоал =))))))))) | |
|
|
|
|
|
|
|
для: Евгений Петров
(20.01.2006 в 02:07)
| | Евгений Петров первый раз вижу такой вариант решения моем проблемы! Надо будет протестить что и как! Вот токо опять же не работал никогда с функцией foreach(), всегда использовал что то другое
Panker да именно там узнал об этом месте :) | |
|
|
|
|
|
|
|
для: midav
(20.01.2006 в 12:41)
| | Нифига не получается! Если честно та файл у меня выглядит так
||||||||||||||||||||||||||
Vadim|Janusev|midav|pass|pass|midav20@mail.ru|1|01|14|1984|Учусь в
LLU|24.10.2005|20:33:55|ip|moja.jpg|Jelgava|1|2|admin|
Pavel|Mozalev|Quanty|pass|pass|julijs-cesars@inbox.lv|1|09|07|1984|Salo Sila Sport Mogila
!!!=]]|12.01.2006|22:09:44|ip|account.gif|Jelgava|1|2||
Женюта|Рогова|Женюта|pass|pass|ariella-evro@mail.ru|2|21|04|1987|даже не знаю,судите
сами|13.01.2006|21:40:12|||Зеленоград|1|1||
Julja|K|valencia|pass|pass|jullly@inbox.lv|2|03|07|1984|http://www.sexlib.ru
/goroskop/main/?rak|15.01.2006|20:38:53|ip|Picture_029_edited.jpg|Jelgava|1|1|moder|
Inga|zverjok|Inga|pass|pass|inga182@inbox.lv|2|14|06|1985|vrednaja malenjkaja
devo4ka|14.01.2006|21:32:27|||Jelgava|2|1||
|
После емайла у меня есть 1 и 2! Если цифра 2 то это девушки! Ну вот по ним и надо мне! | |
|
|
|
|
|
|
|
для: midav
(20.01.2006 в 13:21)
| | Согласитесь, что это несколько отличается от :)))
muzik|12.01.06|
muzik|11.01.06|
devuwki|14.01.06|
muzik|11.01.06|
devuwki|14.01.06|
devuwki|14.01.06|
muzik|11.01.06|
|
Прикрепите файл (или его чать) к сообщению, чтобы форум не нарушал его естественное форматирование | |
|
|
|
|
|
|
|
для: cheops
(20.01.2006 в 14:40)
| | простите за флуд )))
Хи ))) Мидав, а именно ты говори или вр что форум как форум и нечего тут делать =)) я уже привел 1 чела и помог 4рём людям )) я герой =))когданибуть я покарю этот форум =))))))) | |
|
|
|
|
 731 байт |
|
|
для: cheops
(20.01.2006 в 14:40)
| | Ну вот такой файл! То что после емайла 1 или 2 так это если 1 - мужщина, если 2 - девушки! Ну вот по цифре 2 мне и надо подчитывать и потом разбить на страницы | |
|
|
|
|
|
|
|
для: midav
(20.01.2006 в 22:29)
| |
<?
function GetCount($filename)
{
$f = fopen($filename,"r");
$count = 0;
while(!feof($f))
{
$buf = fgets($f);
$buf = explode("|",$buf);
if($buf[6] == "2")
$count++;
}
fclose($f);
return $count;
}
function GetRecords($filename,$from,$num)
{
$f = fopen($filename,"r");
$i = $j = 0;
unset($retar);
while(!feof($f) && $i != $num)
{
$buf = fgets($f);
$buf = explode("|",$buf);
if($buf[6] == "2")
{
if($j >= $from)
{
$retar[] = trim($buf[0]);
$i++;
}
$j++;
}
}
return $retar;
}
$num = 4;
$filename = "file.txt";
if($ar = GetRecords($filename,$page,$num))
foreach($ar as $value)
{
echo $value."<br>";
}
$count = GetCount($filename);
for($i=0;$i<$count;$i+=$num)
echo "<a href=file.php?page=$i>$i</a> ";
?>
|
| |
|
|
|
|
|
|
|
для: Евгений Петров
(20.01.2006 в 23:32)
| | так ничего но он мне выводит первые 4 , а потом при переходе дальше остаются те самые имена http://midav.ilva.lv/girlfotos.php | |
|
|
|
|
|
|
|
для: midav
(21.01.2006 в 00:49)
| | Ну потому что если вы 4 раза продублировали тот файл, то ничего удивительного. У вас там 4 девушки, на каждой странице по 4 девушке, вот и получается что они везде одинаковые вы поменяйте $num = 4 на $num = 5 и вам все станет понятно | |
|
|
|
|
|
|
|
для: Евгений Петров
(21.01.2006 в 00:56)
| | дело втом что в файле у меня уже 13 девушек, я вам не полный файл давал для скачки! А выводяться только первые 4 | |
|
|
|
|
|
|
|
для: midav
(21.01.2006 в 01:00)
| | Дайте полный | |
|
|
|
|
|
|
|
для: Евгений Петров
(21.01.2006 в 01:18)
| | Хотя и не вижу смысл давать полный, так как люди регистрируются на моём сайте и список всё время добавляется! Я там вырезал пароли и ип, чтоб небыло злоумыленникам веселье | |
|
|
|
|
|
|
|
для: midav
(21.01.2006 в 01:34)
| | Я кажется понял. Попробуйте заменить
if($ar = GetRecords($filename,$page,$num))
|
на
if($ar = GetRecords($filename,$_GET['page'],$num))
|
| |
|
|
|
|
|
|
|
для: Евгений Петров
(21.01.2006 в 12:57)
| | Евгений Петров спасибо большое!:) заработало! Хоть я и не совсем понял код скрипта, но главное что работает :) ещё раз спасибо! Ещё может вы будете добры помочь в этой теме
http://www.softtime.ru/forum/read.php?id_forum=4&id_theme=11839 | |
|
|
|
|
|
|
|
для: midav
(21.01.2006 в 13:01)
| | Вот ток со всем этим опять проблема! По вашему скрипту у меня только показывает имя девушки! А мне ещё надо вывести её фото, ник, фамилию, дату рождения, емайл :( | |
|
|
|
|
|
|
|
для: midav
(21.01.2006 в 13:19)
| | Это легко переделать, изменив 30 строку с
$retar[] = trim($buf[0]);
|
на
и тогда на выходе
обращайтесь к элементам массива:
45 строка, вместо:
нужный элемент, например $value[2]
| |
|
|
|
|
|
|
|
для: Евгений Петров
(22.01.2006 в 01:06)
| | Спасибо я уже был разобравшись! я чуть по другому сделал | |
|
|
|
|
|
|
|
для: Евгений Петров
(22.01.2006 в 01:06)
| | Евгений Петров не могли бы вы сделать вывод ссылки на следующую страницу вот так 1|2|3| и т.д? А то по вашему примеру страницы выводяться в зависимости переменной $num 0|4|8 и т.д | |
|
|
|
|
 1000 байт |
|
|
для: midav
(23.01.2006 в 22:06)
| | -> | |
|
|
|
|
|
|
|
для: Евгений Петров
(23.01.2006 в 22:16)
| | Спасибо попробую | |
|
|
|
|
|
|
|
для: midav
(23.01.2006 в 22:31)
| | Как то не работает правильно! на вторую страницу выводиться все то что было на первой кроме первой строчки :( | |
|
|
|
|
|
|
|
для: midav
(24.01.2006 в 02:17)
| | Извиняюсь не был поменявши эту строчку
if($ar = GetRecords($filename,$_GET['page'],$num))
Всё хорошо работает, спасибо | |
|
|
|
|
|
|
|
для: cheops
(20.01.2006 в 01:06)
| | Cheops, а что такое "половая дискриминация"? | |
|
|
|
|
|
|
|
для: Boss
(24.01.2006 в 02:46)
| | Это когда предпочтение, по традиции, отдается паркету, в то време как другие напольные покрытия уже сделали качественный скачок:) | |
|
|
|