Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Портал .::2BakSa.WS::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Веб - Программирование > PHP

Уважаемые пользователи nowa.cc и 2baksa.ws. У нас сложилось тяжёлое финансовое положение. Мы работаем для вас вот уже более 15 лет и сейчас вынуждены просить о помощи. Окажите посильную поддержку проектам. Мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: 826074280762 Webmoney WME: 804621616710
PayPal PayPal_Email E-mail для связи по вопросу помощи
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!
Ответ
 
Опции темы Опции просмотра Language
Старый 04.09.2006, 22:30   #1
Новичок
 
Аватар для RUSik
 
Пол:Мужской
Регистрация: 02.11.2005
Адрес: Питер
Сообщений: 25
Репутация: 126
По умолчанию народ помогите плиззз с 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 вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: нижний новгород кострома метеор расписаниевиброгалтовка ювелирнаяпроект барнConecte CS-Cart a Dropbox SignОтличное предложение в КНС Нева - KF-H3KZ854KD - специальные условия для корпоративных клиентов в Санкт-Петербурге.


Старый 05.09.2006, 11:54   #2
ana
Модератор
 
Аватар для ana
 
Пол:Мужской
Регистрация: 20.10.2004
Адрес: Germany
Сообщений: 543
Репутация: 312
По умолчанию Re: народ помогите плиззз с php

Привет 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>";

}
ничаго так...
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе...

Последний раз редактировалось ana; 05.09.2006 в 15:46..
ana вне форума
 
Ответить с цитированием Вверх
Старый 05.09.2006, 22:28   #3
RUSik
Новичок
 
Аватар для RUSik
 
Пол:Мужской
Регистрация: 02.11.2005
Адрес: Питер
Сообщений: 25
Репутация: 126
По умолчанию Re: народ помогите плиззз с php

ana это то мне было понятно что надо задать переменные которые будут считать строки и ограничивать по числу строк отображение но загвоздка заключается в том что я не знаю как написать или дописать скрипт чтобы он оставшиеся по 15 строк делил и отображалд на других страницах ??? как это сделать вопрос ну с этим ты мне тоже помог спасибо огромное жду ответа .
__________________
RUSik вне форума
 
Ответить с цитированием Вверх
Старый 06.09.2006, 12:06   #4
ana
Модератор
 
Аватар для ana
 
Пол:Мужской
Регистрация: 20.10.2004
Адрес: Germany
Сообщений: 543
Репутация: 312
По умолчанию Re: народ помогите плиззз с php

Цитата:
Сообщение от RUSik
ana это то мне было понятно что надо задать переменные которые будут считать строки и ограничивать по числу строк отображение.

Да? Тогда я не понял вопроса наверное :54:

Цитата:
Сообщение от RUSik

но загвоздка заключается в том что я не знаю как написать или дописать скрипт чтобы он оставшиеся по 15 строк делил и отображалд на других страницах ???.

----
Надо количество всех строк поделить на число строчек которые мы
хотим видеть, тогда получим количество страниц,
вот что я дописал в конце кода>

Код:
// set links
// get count of links
$count_ln = intval($count_tr/$show) + 1;
$j = 1;
for($i=1;$i<=$count_ln;$i++){
    echo ("&nbsp;<a href=\"#\">$j</a>&nbsp;");
    $j++;
}
Маленькая хитрость, надо количество строк округлять
до целого числа и прибавлять единицу, что бы не
потерять последние строки в таблице

Вот так это выглядит в натуре>
http://weber-grosshandel.eu/nowa/rusik/excelexit.php
а это исходник>
http://weber-grosshandel.eu/nowa/rusik/excelexit.html


:23: Пьём шампанское!
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе...

Последний раз редактировалось ana; 07.09.2006 в 12:31..
ana вне форума
 
Ответить с цитированием Вверх
Старый 14.09.2006, 20:23   #5
RUSik
Новичок
 
Аватар для RUSik
 
Пол:Мужской
Регистрация: 02.11.2005
Адрес: Питер
Сообщений: 25
Репутация: 126
По умолчанию Re: народ помогите плиззз с php

блин ana что то я не пойму ни как всё сделал как ты сказал а оно мне кажет только первую страницу а по остальным тыкаешь они хоп и те же позиции как на первой фигня какая то выходит странно помоги чего можно сделать а???
__________________
RUSik вне форума
 
Ответить с цитированием Вверх
Старый 14.09.2006, 22:32   #6
ana
Модератор
 
Аватар для ana
 
Пол:Мужской
Регистрация: 20.10.2004
Адрес: Germany
Сообщений: 543
Репутация: 312
По умолчанию Re: народ помогите плиззз с php

Цитата:
Сообщение от RUSik
блин 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 ("&nbsp;<a href=\"index.php?start=$start&show=$show\">$j</a>&nbsp;");
    $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 index.php
Пример

Спасибо за внимание!:гуляем
__________________
Лучше сидеть в маленькой душной пивной , чем работать на большом светлом заводе...

Последний раз редактировалось ana; 15.09.2006 в 11:02..
ana вне форума
 
Ответить с цитированием Вверх
Старый 12.11.2007, 15:06   #7
msa
Неактивный пользователь
 
Аватар для msa
 
Пол:Мужской
Регистрация: 29.01.2007
Сообщений: 24
Репутация: 0
По умолчанию Ответ: народ помогите плиззз с php

народ, хелп!
Где взять код для on-line каталога мебели? Нужно чтоб в БД добавлялась мебля, а потом чтоб отбирало с БД и по страничкам разбивало
msa вне форума
 
Ответить с цитированием Вверх
Старый 12.11.2007, 15:49   #8
Ragimovich
Постоялец
 
Аватар для Ragimovich
 
Пол:Мужской
Регистрация: 24.10.2006
Сообщений: 495
Репутация: 418
По умолчанию Ответ: народ помогите плиззз с php

Вообще-то, так, для общего развития, то, реализация чего здесь описывалась, называется импортным словом pagination (вольный русский перевод - листалка) и, при наличии небольших знаний английского, информация на эту тему находится на 1-2-3 в гугле.
Ragimovich вне форума
 
Ответить с цитированием Вверх
Старый 06.01.2009, 20:33   #9
Umar
Неактивный пользователь
 
Регистрация: 06.01.2009
Сообщений: 2
Репутация: 0
По умолчанию Re: народ помогите плиззз с php

Цитата:
Сообщение от ana Посмотреть сообщение
Код и работающий пример тут

Код: excelexit.php index.php
Пример

Не совсем рабочий пример....
Umar вне форума
 
Ответить с цитированием Вверх
Старый 07.01.2009, 12:17   #10
Umar
Неактивный пользователь
 
Регистрация: 06.01.2009
Сообщений: 2
Репутация: 0
По умолчанию Re: народ помогите плиззз с 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 ("&nbsp;<a href=\"katalog.php?start=$start&show=$show\">$j</a>&nbsp;");
$j++;
$start += $show;}
?>

Заранее, благодарю!
Umar вне форума
 
Ответить с цитированием Вверх
Старый 16.01.2009, 12:04   #11
ligth_user
Banned
 
Пол:Мужской
Регистрация: 26.10.2005
Сообщений: 218
Репутация: 73
По умолчанию Re: народ помогите плиззз с php

Возьмите любую СМС-ку, у каждой из них есть класс для постраничного вывода типа pagination.php или pager.php ...
ligth_user вне форума
 
Ответить с цитированием Вверх
Старый 22.06.2009, 07:59   #12
reklamairk
Неактивный пользователь
 
Регистрация: 22.06.2009
Сообщений: 2
Репутация: 0
По умолчанию Re: народ помогите плиззз с php

Народ подскажите в чём разница между кодировками ср1251 и windows-1251?
reklamairk вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите Плиззз VGN-CR41SR/P ДМs Sony 4 17.10.2009 11:16
Помогите мне разобраться с Asus F3Sa плиззз!!! dreikke Asus 161 11.06.2009 17:20
народ, помогите с hp! valud Hewlett-Packard / Compaq 2 05.03.2008 16:13
Помогите плиззз с SPV E200!!! TAST Смартфоны 0 31.10.2007 10:59

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 07:16. Часовой пояс GMT +3.


Copyright ©2004 - 2024 2BakSa.WS

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.18915 секунды с 11 запросами