За последние 24 часа нас посетили 23765 программистов и 1604 робота. Сейчас ищут 849 программистов ...

Вывод XML

Тема в разделе "PHP для новичков", создана пользователем etalcom, 7 мар 2013.

  1. etalcom

    etalcom Активный пользователь

    С нами с:
    14 мар 2012
    Сообщения:
    86
    Симпатии:
    0
    Адрес:
    Вологда
    Добрый вечер, задался вопросом, Есть вывод данных из XML файла, но нужно этот большой список немного разбить!
    Хотелось бы наверное на странички!!
    Вот думаю сразу лучше спросить!Реально ли это?
    В принципе есть конечно задумки. Но лучше спрошу реально ли.
    Может хоты бы мысли какие нить есть!
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Ну не выводи всё разом =)
     
  3. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    По страничную навигацию сделать конечно же можно.
     
  4. etalcom

    etalcom Активный пользователь

    С нами с:
    14 мар 2012
    Сообщения:
    86
    Симпатии:
    0
    Адрес:
    Вологда
    Я правильно строю ход мыслей?
    Надо ввести в этот xml например нумерацию всех строк,
    Делить их на кол-во строк на странице и с помощью этого вывести список всех страниц
    А потом уже например GET параметр при нажатии на номер страницы передавать
    И уже когда он есть например что страница два, выводить номера тех которые попадают под условие
    Что если на странице двадцать всего строк будет, то на второй странице должны быть номера с 21 по 40
    Так правильно будет или это не правильно?
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а ты сам как считаешь?
     
  6. etalcom

    etalcom Активный пользователь

    С нами с:
    14 мар 2012
    Сообщения:
    86
    Симпатии:
    0
    Адрес:
    Вологда
    Ну считаю что это правильный алгоритм!
    просто хотелось бы мнение профи услышать!
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а какие могут быть варианты?
     
  8. etalcom

    etalcom Активный пользователь

    С нами с:
    14 мар 2012
    Сообщения:
    86
    Симпатии:
    0
    Адрес:
    Вологда
    Ну не знаю!
    Буду сегодня пробовать реализовывать этот!
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну подожди, давай порассуждаем.

    вот есть у нас сто одиннадцать строк.
    бьем по 20
    на первой странице 20, на второй ещё двадцать. так?

    Внимание вопрос

    А какие могут быть ещё варианты? =)
     
  10. etalcom

    etalcom Активный пользователь

    С нами с:
    14 мар 2012
    Сообщения:
    86
    Симпатии:
    0
    Адрес:
    Вологда
    Ну я не знаю какие еще могут быть варианты, это ответ на последний вопрос.
    Насчет 111 строк это тоже конечно заставило меня задуматься!
    Я вчера просто начал пробовать!
    У меня еще есть одна проблема, там просто нет порядковый номеров в xml файле.
    Вот!
    Теперь думаю как еще сделать.
    Дело в том что человеку на сайте надо именно страницами.

    Сейчас буду думать какие еще варианты можно придумать!

    Отпишу чуток позже!Надо на работе утренние дела сделать)
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а почему именно xml?

    сортировка важна а не порядковый номер.
     
  12. etalcom

    etalcom Активный пользователь

    С нами с:
    14 мар 2012
    Сообщения:
    86
    Симпатии:
    0
    Адрес:
    Вологда
    Ну потому что из 1С идет выгрузка в этом формате.
    То что имею то и делаю(

    Добавлено спустя 2 минуты 1 секунду:
    Не понял почему не важен порядковый номер, по номеру то можно было бы выводить по условию записи которые нужно например с 21 по 40

    Добавлено спустя 28 секунд:
    А как я сортировкой выведу?
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    если его нет значит он не важен
    а почему не сделаешь затаскивание в БД?
     
  14. etalcom

    etalcom Активный пользователь

    С нами с:
    14 мар 2012
    Сообщения:
    86
    Симпатии:
    0
    Адрес:
    Вологда
    Потому что этот xml каждый день выгружается.
    И он всегда разный.
     
  15. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    каждый день загружай =)

    да пофик. делай как считаешь нужным. если он небольшого размера то пофик.
     
  16. etalcom

    etalcom Активный пользователь

    С нами с:
    14 мар 2012
    Сообщения:
    86
    Симпатии:
    0
    Адрес:
    Вологда
    Код (Text):
    1.  
    2.     $xml = "list_akb.xml";
    3.     $list =  simplexml_load_file($xml);
    4.     $arItems = $list->list_item;
    5.     foreach ($list->list_item as $item)
    6.     {
    7.         //echo $item->name."<br>";
    8.     }
    9.     //кол-во строк на странице
    10.     $page = 20;
    11.     //кол-во строк
    12.     $count = count($arItems);
    13.     $summ = $count/$page;
    14.     for($i=1; $i<=$summ; $i++)
    15.     {
    16.     ?>
    17.         <a href="<?php echo 'http://'.$_SERVER['HTTP_HOST'].'/full_list.php?page='.$i;?>"><?php echo $i;?></a>&nbsp;
    18.     <?
    19.     }
    Код (Text):
    1.  
    2. <akb_list>
    3.  
    4.     <list_item>
    5.  
    6.         <art>215</art>
    7.  
    8.         <images>images/20000668.jpg</images>
    9.  
    10.         <name>Аккумулятор 3ст-215ПП (Тюмень)</name>
    11.  
    12.         <quantity>12</quantity>
    13.  
    14.         <price></price>
    15.  
    16.         <polarnost>ПП</polarnost>
    17.  
    18.         <zalit>Нет</zalit>
    19.  
    20.         <emkost>215,0</emkost>
    21.  
    22.     </list_item>
    23. </akb_list>
    Вот таких записей сейчас 140 вот структура самого xml
    понятное дело если записей будет не четное кол-во то я сделаю округление при делении до большего
    И будет выводится нужное кол-во страниц
    А как мне именно вывод то сделать что если выбрана страница 2 то выводим вторые 20 строк
    Если бы были бы номера то я бы просто прописал условие.
    А тут их нет.
    Завести счетчик внуть цикла, тоже не правильно так как он будет выводить всегда первые 20
    Или как загнать xml в массив, и заодно пронумеровать все строки.
    Дак время то мне кажется будет большое выполнение
    просто след xml который надо будет так сделать там строк 2000-3000 точно
     
  17. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    сколько ж мусолить можно? в гугл с требованием xml pagination php на первой странице несколько готовых реализаций.
     
  18. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Некоторые просто не видят, что все уже есть.
    Точнее нужно найти, решение (или составить их самому с мелкими найденными деталями и мануалами).