Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод содержания файла 
:(
    Опции темы
Igor_CH
Дата 16.4.2005, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



Дальше я делаю деление по страницам, т.е. на первой странице от 1 до 10 строки, на второй от 11 до 20 и так далее.
Но если строчек 15, а я нахожусь на второй странице, то ошибки нет переменных с 16 до 20 строки, как убрать ошибки?
PM MAIL   Вверх
InfMag
Дата 17.4.2005, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


…
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 1
Всего: 4



Вот, я че-т уже натыкал:
Код

$data_array = file("data/file.dat");
$lines = sizeof($data_array);
if (isset($_GET['page'])) $page = $_GET['page']; else $page = 1;
if ($page <= 0) $page = 1;
$cols = 3;
$maxmess = 10*$cols;
$pages = (int)(($lines+$maxmess-1) / $maxmess);
$from = $lines - ($page*$maxmess-1);
$to = $lines - (($page-1)*$maxmess);
$lnks = "Страницы: /";
for ($i=1; $i<=$pages; $i++) if ($i == $page) $lnks .= " <b>$i</b> /"; else $lnks .= " <a href=\"?page=$i\">$i</a> /";
echo "<table cellpadding=10>\n";
echo "<tr><td colspan=\"$cols\" align=center>$lnks</td></tr>\n";
echo "<tr>\n";
for ($i=$from-1, $n=$to+1; $i<$to; $i++, $n--)
{
    $name = explode("::", $data_array[$i-1]);
    if ($n%$cols == 0 && $i != $lines) echo "</tr>\n<tr>\n";
    echo "<td>$name[0], $name[1], $name[2], $name[3], $name[4], $name[5]</td>\n";
}
echo "</tr>\n";
echo "</table>\n";

Но при переходе на вторую страницу - ошибки...
PM   Вверх
InfMag
Дата 17.4.2005, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


…
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 1
Всего: 4



Надеюсь это то, что ты хотел. Если тебе нужен листинг не от конца, а от начала, то скажи. smile
Код

$data_array = file("data/file.dat");
$lines = sizeof($data_array);
if (isset($_GET['page'])) $page = $_GET['page']; else $page = 1;
if ($page <= 0) $page = 1;
$cols = 3;
$maxmess = 10*$cols;
$pages = (int)(($lines+$maxmess-1) / $maxmess);
$from = $lines - ($page*$maxmess-1);
$to = $lines - (($page-1)*$maxmess);
$lnks = "Страницы: /";
for ($i=1; $i<=$pages; $i++) if ($i == $page) $lnks .= " <b>$i</b> /"; else $lnks .= " <a href=\"?page=$i\">$i</a> /";
echo "<table cellpadding=10>\n";
echo "<tr><td colspan=\"$cols\" align=center>$lnks</td></tr>\n";
echo "<tr>\n";
$m=0;
for ($i=$from-1; $i<$to; $i++)
{
    if (!empty($data_array[$i-1]))
    {
        $name = explode("::", $data_array[$i-1]);
        if ($m%$cols == 0 && $i != $lines) echo "</tr>\n<tr>\n";
        echo "<td>$name[0], $name[1], $name[2], $name[3], $name[4], $name[5]</td>\n";
        $m++;
    }
}
echo "</tr>\n";
echo "</table>\n";

PM   Вверх
Igor_CH
Дата 18.4.2005, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



Спасибо! Это только начало кода, вопросы еще будут smile
При коде выше страницы не совсем правильно формируются.
Например, у нас 13 строчек в файле, выводим их в 3 колонки по 5 строк, то на страницы мы видим такой порядок вывода строк:
1 страница:
9 10 11
12 13
2 страница:
4 5 6
7 8
3 страница:
1 2 3

А логичней было бы так:
1 страница:
13 12 11
10 9
2 страница:
8 7 6
5 4
3 страница:
3 2 1

Это сообщение отредактировал(а) Igor_CH - 18.4.2005, 08:54
PM MAIL   Вверх
Igor_CH
Дата 19.4.2005, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



строчку
Код

for ($i=$from-1; $i<$to; $i++)

поменаля на
Код

for($i=$to-1;$i>=$from-1;$i--)

теперь все правильно
всем кто помогал спасибо!!!
PM MAIL   Вверх
Igor_CH
Дата 19.4.2005, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



Мы получаем файл с таблицей в каждой ячейки таблицы переменные с строки в файле file.dat. Далее я делаю одну из переменных (name[0]) ссылкой.
Можно ли сделать так, что бы щелкая по этой ссылке открывалось бы новое окно в котором были бы переменные именно этой строки?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0440 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.