За последние 24 часа нас посетили 17627 программистов и 1639 роботов. Сейчас ищут 2240 программистов ...

Вывод определенного количества записей

Тема в разделе "Сделайте за меня", создана пользователем Linne, 18 авг 2014.

  1. Linne

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

    С нами с:
    19 июл 2014
    Сообщения:
    44
    Симпатии:
    0
    Здравствуйте, товарищи.

    Есть вот такой код. Нужно, чтобы выводились не все новости сразу, а только несколько, например — 6. Новости эти состоят как видно из двух узлов xml-документа и ссылки, для перехода к целевой странице. Один документ — одна новость. Т. е., никаких реляционных БД. На постраничный вывод и пагинацию я уж конечно не расчитываю, но необходимо хотя бы ограничить число таких «анонсов» на страничке. Также, необходимо, чтобы «анонсы» выводились по дате публикации. а то они выводятся по инмени.

    Код (Text):
    1. <?php
    2. $handle = opendir($fileDir);
    3. while (($file = readdir($handle)) !== FALSE) {
    4.     if (is_dir($fileDir . $file)) continue;
    5.     if (!eregi('^news.*\.xml$', $file)) continue;
    6.  
    7.     $news = simplexml_load_file($fileDir . $file);
    8.     if (count($news->xpath('["date"]'))) {
    9.  
    10.        echo '<h1>' . $news->headline . '</h1>';
    11.        echo '<div id="description"' . $news->description . '</div>';
    12.        echo "<a href=\"innerpage.php?id={$id}\">More...</a><br />";
    13. }
    14. ?>
    В php совсем новичок. Очень надеюсь на помощь знающих людей.
     
  2. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
  3. Linne

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

    С нами с:
    19 июл 2014
    Сообщения:
    44
    Симпатии:
    0
    Товарищи! Неужели никто не поможет решением? Проект не коммерческий, — «научно-просветительский». Сам не додумкаю. Поможите!
     
  4. Linne

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

    С нами с:
    19 июл 2014
    Сообщения:
    44
    Симпатии:
    0
    Проблему так и не решил :(
     
  5. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Код (Text):
    1. while (($file = readdir($handle)) !== FALSE)
    2.    if (!is_dir($fileDir . $file) && eregi('^news.*\.xml$', $file))
    3.      $files[]=$file;
    А дальше уже гоняете как угодно цикл по $files, хоть с начала, хоть с конца, хоть 6 штук через одну:
    Код (Text):
    1. for ($i=0; $i<12; $i+=2)
    2.      $news = simplexml_load_file($fileDir . $files[$i]); // и т.д.
     
  6. Linne

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

    С нами с:
    19 июл 2014
    Сообщения:
    44
    Симпатии:
    0
    Хыиуду, огромное вам человеческое спасибо! Таким образом удалось вывести заданное число «анонсов». Но, к сожалению, не могу сообразить каким образом отображать их по времени создания. Если, выводить по id (узел есть там в XML-файле), то все равно не удастся очевидно. Сортируются они (в каталоге) по имени. Имена у этих файлов — news20140817153118, news20140819172209 и т. д., то есть, к «пространству имен» (news) добавляется дата создания. Может быть как-то можно их выводить по последнему изменению? Как это «вклинить» в существующий код? Как же это все сложно то...
     
  7. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    тогда sort($files), если прямо имя файла включает в себя дату-время.
     
  8. Linne

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

    С нами с:
    19 июл 2014
    Сообщения:
    44
    Симпатии:
    0
    Все удалось! rsort($files) — то что доктор прописал! Эх, мне бы такого наставника в моем освоении php как вы! Все доступно и прекрасно усваивается. Спасибо вам еще раз!
     
  9. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Приятно видеть человека, который хочет и может разбираться сам, с минимальными подсказками со стороны.
     
  10. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Юзай БД, юный падаван.
     
  11. Linne

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

    С нами с:
    19 июл 2014
    Сообщения:
    44
    Симпатии:
    0
    БД мне не нужна. Я целенаправленно собирал сервер без sql. Я люблю flatfile. Я имею на это ряд причин.

    Добавлено спустя 5 минут 22 секунды:
    БД нужны для массивных проектов. У меня только справочники терминов.
     
  12. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Давай, на стол клади свой ряд причин - обсудим. =)
     
  13. Linne

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

    С нами с:
    19 июл 2014
    Сообщения:
    44
    Симпатии:
    0
    Одну я выше изложил (…БД нужны для массивных проектов. У меня только справочники терминов.). Необходимы остальные? :)
     
  14. Ke1eth

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

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    тогда, если без фанатизма, то sqlite.
    а всеобъемлющая любовь к голым текстовым файлам, еще никого до добра не доводила.
     
  15. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    бд даст возможность нормально индексированного поиска какимнить sphinx. Шерстить файлы регулярками может быть очень долго.
    Но если это просто кучка ссылок и страничек, то да. Можено прицепить поиск яндекса или гугла на сайт и будет удобно.
     
  16. Linne

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

    С нами с:
    19 июл 2014
    Сообщения:
    44
    Симпатии:
    0
    Ну, у меня вся эта «кухня» вполне схожа с общеизвестным движком DokuWiki (правда, гораздо проще, примитивнее, т. к., большинство их функционала мне не нужно), за исключением того, что весь контент хранится в xml-файлах, визуализируется же посредством xslt. А поиск фунциклирует достаточно шустро. На данный момент — порядка 700 xml-документов. Контент — однотипен (термин-заголовок—>введение—>собственно контент (текст, картинки)—>приложения (таблицы, формулы, схемы, библиографические списки), вероятно по-этому.