Просмотр полной версии : народ помогите плиззз с php
помоги народ проблема у меня есть такая со скриптом одним вобщих чертах короче есть скрипт который выводит из файла excel с расширением csv
информацию на страницу но вот незадача не знаю как сделать так чтоб он на страницы разбивал ну если в файле прайс большой например 30 старниц формата А4 как это сделать разбиение сейчас только получается весь прайс вывести на одну веб страницу а это сами понимаете не катит ни в какие ворота
короче есть три файла один в котором всё содержиться и ещё два вот код файла под названием
excelexit.php
<?php
$data = File("modules/Prise/data.csv");
echo "<b><h2><center>Прайс-лист СПб-Электро</b></h2></center>";
echo "<left><table border=1><tr>";
$dat_arr = explode(";", $data[0]);
for ($p=0;$p<count($dat_arr);$p++) {
echo "<td bgcolor=#9cbee6><center><b>$dat_arr[$p]";
}
echo "</tr>";
for ($i=1;$i<count($data);$i++) {
$data_array = explode(";", $data[$i]);
echo "<tr>";
for ($f=0;$f<count($data_array);$f++) {
echo "<td bgcolor=#ffffff><left>$data_array[$f]";
}
echo "</tr>";
}
echo "</table></left></form>";
?>
вот второй под названием index.php
<?php
defined('SPAIZ_CODE') or die('Direct Access to this location is not allowed.');
$module_name = basename(dirname(__FILE__));
$r_blocks = 1;
include("header.php");
OpenTable();
include("modules/$module_name/excelexit.php");
CloseTable();
include("footer.php");
?>
это всё дело написано под движок спайза (spaiz-nuke)
Привет RUSik!
В скрипте надо задать переменные которые, которые будут
определять сколько выводить строчек таблицы.
А точнее задать переменные допустим>
$start - с какой линии начинаем, по умолчанию с 1-ой,
так как в 0 линии у нас заголовок
$show - сколько надо показать линий начиная с линии старт
Вот что у меня на скорую руку вышло>
<?php
//$data = File("modules/Prise/data.csv");
$start = 1; // start line
$show = 15; // showed lines
// make csv array ONLY FOR TEST ;-)
$data = array("Name;Price");
$line = 100; // 100 lines in tht cvs file
for($i=1;$i<=100;$i++){
array_push($data, "item;$i EUR");
}
//~
// get count of line (also count of <tr>)
$count_tr = count($data);
// explode firsr line (also header) to array
$dat_arr = explode(";", $data[0]);
// get count of header (also count of <td>)
$count_td = count($dat_arr);
// print title
echo "<b><h2><center>Прайс-лист СПб-Электро</b></h2></center>";
// start table
echo "<left><table border=1><tr>";
// print table header
for ($i=0;$i<$count_td;$i++)
echo "<td bgcolor=#9cbee6><center><b>$dat_arr[$i]";
// end header
echo "</tr>";
// set stop
$stop = (($start + $show) > $count_tr)?$count_tr:($start + $show);
// print table content
for ($i=$start;$i<$stop;$i++)
{
$data_array = explode(";", $data[$i]);
echo "<tr>";
for ($j=0;$j<$count_td;$j++)
echo "<td bgcolor=#ffffff><left>$data_array[$j]";
echo "</tr>";
}
// end table content
echo "</table></left></form>";
?>
Выводится аккурат заголовок и 15 первых строчек :xe
из массива в 100 елментов
Теперь осталось только передавать значения для
переменных $stop и $show. Как? Moжно произвольно,
ну например "А покажите мне плизз 20 линий начиная с 50-ой"
или разделить фиксированно по 20 строк на страницу ...
Это уже дело вкуса
Надеюсь всё понятно? Ну как работает то сейчас скриптик то?
:гуляем
Я дописал комментарии и немного оптимизировал :дразню
PS. Красота принадлежит народу!
Отдохнуть после трудов праведных, в смысле глаза должны отдыхать! >
<?php
$link ='http://visualweb.youngsunday.com/otome/files/034/';
for($i=1;$i<=23;$i++){
$img = '000'.$i;
$img = substr($img, -3, 3);
$a = $link.$img.'.jpg';
echo "<a href=$a>$a</a><br>";
}
:cool: ничаго так...
ana это то мне было понятно что надо задать переменные которые будут считать строки и ограничивать по числу строк отображение но загвоздка заключается в том что я не знаю как написать или дописать скрипт чтобы он оставшиеся по 15 строк делил и отображалд на других страницах ??? как это сделать вопрос ну с этим ты мне тоже помог спасибо огромное жду ответа .
ana это то мне было понятно что надо задать переменные которые будут считать строки и ограничивать по числу строк отображение.
Да? Тогда я не понял вопроса наверное :54:
но загвоздка заключается в том что я не знаю как написать или дописать скрипт чтобы он оставшиеся по 15 строк делил и отображалд на других страницах ???.
----
Надо количество всех строк поделить на число строчек которые мы
хотим видеть, тогда получим количество страниц,
вот что я дописал в конце кода>
// set links
// get count of links
$count_ln = intval($count_tr/$show) + 1;
$j = 1;
for($i=1;$i<=$count_ln;$i++){
echo (" <a href=\"#\">$j</a> ");
$j++;
}
Маленькая хитрость, надо количество строк округлять
до целого числа и прибавлять единицу, что бы не
потерять последние строки в таблице
Вот так это выглядит в натуре>
http://weber-grosshandel.eu/nowa/rusik/excelexit.php
а это исходник>
http://weber-grosshandel.eu/nowa/rusik/excelexit.html
:23: Пьём шампанское!
блин ana что то я не пойму ни как всё сделал как ты сказал а оно мне кажет только первую страницу а по остальным тыкаешь они хоп и те же позиции как на первой фигня какая то выходит странно помоги чего можно сделать а??? :cry: :cry: :cry:
блин ana что то я не пойму ни как всё сделал как ты сказал ....
Вы сделали ЭТО!
Я не верю своим глазам! И ЭТО работает?
Тогда не зря я здесь вроде как модератор&консультант...:4:
А то, что показывает только первую страницу, это правильно,
я специально так сделал и ждал этого вопроса...
Просьба не ругаться ... ... так надо!(c)"Бриллиантовая рука"
И так к скрипту>
вся страница показывается через index.php,
значит надо делать ссылку на index.php!
Дописываем скрипт>
// set links
// get count of links
$count_ln = intval($count_tr/$show) + 1;
$j = 1;
$start = 1;
for($i=1;$i<=$count_ln;$i++){
// %PATH_TO_%/index.php
echo (" <a href=\"index.php?start=$start&show=$show\">$j</a> ");
$j++;
$start += $show;
}
Кроме ссылки на index.php мы ещё добавили,
переменные $start и $show , при чём переменную
$start в проходе каждого цикла увеличиваем на
величину $show
Теперь мы должны принять переменные $start & $show
в скрипте index.php
Добавляем пару строчек в index.php
// GLOBAL $start & $show
// start line
if(isset($_GET['start']) && 0 != $_GET['start'])$start = $_GET['start'];
else $start = 1;
// showed lines
if(isset($_GET['show']) && 0 != $_GET['show'])$show = $_GET['show'];
else $show = 15;
Разумеется определение переменных в скрипте excelexit.php
надо стереть! иначе они будут переопределяться!
По моему всё...
Код и работающий пример тут
Код: excelexit.php (http://weber-grosshandel.eu/nowa/rusik/source.excelexit.html) index.php (http://weber-grosshandel.eu/nowa/rusik/source.index.html)
Пример (http://weber-grosshandel.eu/nowa/rusik/index.php)
Спасибо за внимание!:гуляем
народ, хелп! :sos:
Где взять код для on-line каталога мебели? Нужно чтоб в БД добавлялась мебля, а потом чтоб отбирало с БД и по страничкам разбивало
Ragimovich
12.11.2007, 15:49
Вообще-то, так, для общего развития, то, реализация чего здесь описывалась, называется импортным словом pagination (вольный русский перевод - листалка) и, при наличии небольших знаний английского, информация на эту тему находится на 1-2-3 в гугле.
Код и работающий пример тут
Код: excelexit.php index.php
Пример
Не совсем рабочий пример....
Народ помогите доделать код, у меня сейчас все страницы показывает так: 1 2 3 4 5 6...25
а нужно вот так: Начало 6 7 8 9 10 Последняя (Всего 25)
так чтобы показывались страницы две предыдущие(6 7) и две последующие(9 10) или что-то в этом плане.
Вот код:
<?php
$data = File("tyc.csv");
// GLOBAL $start & $show
// start line
if(isset($_GET['start']) && 0 != $_GET['start'])$start = $_GET['start'];
else $start = 1;
// showed lines
if(isset($_GET['show']) && 0 != $_GET['show'])$show = $_GET['show'];
else $show = 30;
// get count of line (also count of <tr>)
$count_tr = count($data);
// explode firsr line (also header) to array
$dat_arr = explode(";", $data[0]);
// get count of header (also count of <td>)
$count_td = count($dat_arr);
// заголовок
echo "<h2><center>Прайс-лист на оптику TYC</h2></center>";
// начало таблицы
echo "<center><table cellpadding=3 cellspacing=0 border=1 bordercolorlight=#333333><tr>";
// шапка таблицы
for ($i=0;$i<$count_td;$i++)
echo "<td bgcolor=white><center><b><p>$dat_arr[$i]";
// end header
echo "</tr>";
// set stop
$stop = (($start + $show) > $count_tr)?$count_tr:($start + $show);
// содержимое таблицы
for ($i=$start;$i<$stop;$i++)
{ $data_array = explode(";", $data[$i]);
echo "<tr>";
for ($j=0;$j<$count_td;$j++)
echo "<td><p>$data_array[$j]";
echo "</tr>"; }
echo "</table></form>";
// настройка ссылок
// get count of links
$count_ln = intval($count_tr/$show) + 1;
$j = 1;
$start = 1;
for($i=1;$i<=$count_ln;$i++){
// обращение к главной странице
echo (" <a href=\"katalog.php?start=$start&show=$show\">$j</a> ");
$j++;
$start += $show;}
?>
Заранее, благодарю!
ligth_user
16.01.2009, 12:04
Возьмите любую СМС-ку, у каждой из них есть класс для постраничного вывода типа pagination.php или pager.php ...
reklamairk
22.06.2009, 06:59
Народ подскажите в чём разница между кодировками ср1251 и windows-1251?
vBulletin® v3.8.9, Copyright ©2000-2026, vBulletin Solutions, Inc.