Помогите с архивом нвоостей... @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 28 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
da-khosh Муж.
новый человек
0
Сообщения: 68
Зарегистрирован: 23.09.01
Откуда: Москва
Заголовок сообщения: Помогите с архивом нвоостей...
Сообщение Добавлено: 22 Ноябрь 2004, 15:59:26 
У меня есть php скрипт новостей, с базой "news.txt"
Все новости представлены построчно, а строки разбиты на символы "^^"

Нужно сделать вывод 10 новостей а затем архив по типу:
Архив: 10 новостей, 20 новостей, 30 новостей … и тд.
Где 10 новостей является ссылкой на страницу с 10 новостями из архива. Потом 20 новостей с последующими 20 новостями и тд.

Новости я вывожу, разбивая в файле "news.txt" строки на массивы. Потом каждый массив разбивается через explode на части (дата, тема, новость) с помощью "^^".
А вот как разбить новости по выводу 10 на страницу?

Я пока только могу сделать вывод через for($i=0;$i<10;$i++) {
Но в таком случае я вижу только первые 10. А как следующую десятку вывести?

Понятно что надо пинать for($i=0;$i<10;$i++) { но не подскажете как?
seventeen
соучастник
0
Сообщения: 864
Зарегистрирован: 29.11.03
Откуда: д. Черемас
Сообщение Добавлено: 22 Ноябрь 2004, 16:44:25 
Вводишь переменную $skip и в зависимости от неё потом for($i=$all-$skip.. ..).
Совет: вместо implode/explode лучше использовать serialize/unserialize, если уж работаешь в с файлами.
da-khosh Муж.
новый человек
0
Сообщения: 68
Зарегистрирован: 23.09.01
Откуда: Москва
Сообщение Добавлено: 22 Ноябрь 2004, 16:55:54 

Цитата:
Вводишь переменную $skip и в зависимости от неё потом for($i=$all-$skip.. ..).


А чуть пояснее? Я мало что понял (новичок, одним словом).


Цитата:
Совет: вместо implode/explode лучше использовать serialize/unserialize, если уж работаешь в с файлами.


ОК! Сейчас почитаю про них...
Чебурген
соучастник
3
Сообщения: 315
Зарегистрирован: 29.08.04
Сообщение Добавлено: 22 Ноябрь 2004, 20:00:26 

Цитата:
Совет: вместо implode/explode лучше использовать serialize/unserialize, если уж работаешь в с файлами.


Это дурной совет.
Почитать никогда не вредно, а вот применять в данном случае - не надо.

Цитата:
Понятно что надо пинать for($i=0;$i<10;$i++) { но не подскажете как?


Очень просто.
Понять, что делает этот оператор.
вообще, понимание того, что ты делаешь, обычно очень способствует успешному решению проблем.
Данный оператор устанавливает сначала $i в ноль.
Потом проверяет условие $i<10. Если оно истинно, то исполняется код, заключенный внутри фигурных скобок.
После этого $i увеличивается на единицу (это делает код $i++).
Далее снова проверяется условие и так далее, пока условие не вернет ложь. тогда цикл прервется, и программа продолжит свое выполнение дальше.

Скорее всего, ты используешь переменную $i в своем скрипте. чтобы выводить элемент массива с индексами от 0 до 0 - так?
Значит, чтобы вывести элементы массива с 10 по 19, то $i надо присвоить какое начальное значение вместо нуля?
А условие проверки какое поставить?

аналогию видишь?
Если выводить надо с нуля, то $i равно нулю. А если выводить с 10, то $i чему равно?
Если выводить надо до тех пор, пока $i меньше 10, то пишется $i < 10. А если надо выводить, пока $i меньше 19, то что надо написать в условии?
Чебурген
соучастник
3
Сообщения: 315
Зарегистрирован: 29.08.04
Сообщение Добавлено: 22 Ноябрь 2004, 20:09:12 
кстати, специально для тебя написан "Самоучитель PHP" - http://www.php5.ru/study/
Там как раз объясняются основы программирования, именно простого, а не только под веб, хотя это там тоже есть.

Кстати, а ты выводишь новости, начиная с самой старой?
da-khosh Муж.
новый человек
0
Сообщения: 68
Зарегистрирован: 23.09.01
Откуда: Москва
Сообщение Добавлено: 22 Ноябрь 2004, 20:34:21 
Я могу вывести все, и самую старую или же только определённое число. Начиная с самой новой и по убыванию.
Спасибки за ссылку будем читать... Но пока решения я найти не могу.
Чебурген
соучастник
3
Сообщения: 315
Зарегистрирован: 29.08.04
Сообщение Добавлено: 22 Ноябрь 2004, 20:46:16 
Как это - не можешь?
ты спрашивал - как тебе следующу десятку вывести . Я ж тебе подробно описал.
Ты точно прочёл?
Зачем решение искать, если оно тебе подробно описано?
может быть, ты что-то не понял из моих слов?
Тогда что именно?
И в чем тогда твоя проблема?
MpaK999 Муж.
участник
1
Сообщения: 1716
Зарегистрирован: 14.11.02
Откуда: Ufa/Russia
Сообщение Добавлено: 22 Ноябрь 2004, 20:47:22 
da-khosh, тебе присылают

news.phph?page=10

тебе остается пролистать в цикле начиная с нее

Код:
if(!isset($page)) $page=0;
for($i=$page;$i<$page+10;$i++){

}

_________________
:: metal kick ass ::
da-khosh Муж.
новый человек
0
Сообщения: 68
Зарегистрирован: 23.09.01
Откуда: Москва
Сообщение Добавлено: 22 Ноябрь 2004, 22:04:35 
Я просто ещё плохо понимаю половину этих $i=0; :cry:
Мне наддо что-бы скрипт смотрел текстовую базу, подсчитывал количестов новостей в базе и выводил ЭННОЕ число последних новостей. Далее он брал оставшиеся новости и разбивал их по 10 штук, генерировал бы ссылки в архиве на каждые 10 новостей.
Если уменя 30 новостей, то скрипт выводит 10 новостей на главной странице, внизу страницы скрип генерирует ссылки на две странички по 10 новостей.

Вот живой пример: http://avto-navigator.ru. Там по 4 новости на странице.
Чебурген
соучастник
3
Сообщения: 315
Зарегистрирован: 29.08.04
Сообщение Добавлено: 22 Ноябрь 2004, 22:35:47 
Что тебе надо - все давно поняли.
Не нужно повторять это 10 раз.
Если ты хочешь, чтобы тебе написали готовый скрипт - так и скажи, не строй из себя девочку.
Если хочешь сам написать - ну так хотя бы пытайся что-то сделать.
приводи здесь хоть кривой, но результат своих ПОПЫТОК что-то сделать!
Отвечай хоть что-то на то, что тебе пишут!
Поясняй - что тебе непонятно.
Вот я тебе объяснил принцип действия $i=0
Ты вообще читал?
Если читал - то понял?
Если не понял - то почему не переспросишь?
Плохо понимаешь - я тебе и на словах объяснил, и ссылку дал.
И что теперь?

Кому нужен этот архив? Мне или тебе?
У меня складывается впечатление, что ты не скрипт пишешь, а у доски отвечаешь, в школе.
И оправдываешься. "Плохо понимаю". Перед кем ты оправдываешься? Перед собой?
По-твоему, "плохо понимаю" - это константа, раз и навсегда?
Если так - то пусть пишет скрипты кто-нибудь другой, а ты найди себе другое занятие.
Если не так - то хоть как-то продемонстрируй это
da-khosh Муж.
новый человек
0
Сообщения: 68
Зарегистрирован: 23.09.01
Откуда: Москва
Сообщение Добавлено: 23 Ноябрь 2004, 20:34:04 
По порядку!


Цитата:
Если ты хочешь, чтобы тебе написали готовый скрипт - так и скажи, не строй из себя девочку.


Нет, я не за этим спрашивал!


Цитата:
Вот я тебе объяснил принцип действия $i=0
Ты вообще читал?


Что ты объяснил я знал, но решать свою задачу, разбивая архив на несколько php файлов, в каждом прописав $i<10, потом $i<20 и $i<30 неразумно. Вот почему я не стал пинать идею с этим кодом.

Архив нужен мне 100%! Ссылку, что ты дал, я записал, но ещё не смог её изучить. На работе сегодня был полный кренздец!
После этого ответа тебе за комп сядет жена и будет писать курсовую и, максимум, я завтра прочту, так что не серчай...
Вообщем, я сейчас засяду с карандашом и очень подумаю =) Завтра с утра попробую чего-нибудь продемонстрировать.
Не думай Чебурген, что твои слова утеряны. Я ценю время людей и большое спасибо тебе за ответы.
Не у всех есть время так быстро реагировать и часто писать тут :)
MpaK999 Муж.
участник
1
Сообщения: 1716
Зарегистрирован: 14.11.02
Откуда: Ufa/Russia
Сообщение Добавлено: 23 Ноябрь 2004, 21:25:25 
da-khosh, уже написали тебе, что ты хочешь...

_________________
:: metal kick ass ::
Чебурген
соучастник
3
Сообщения: 315
Зарегистрирован: 29.08.04
Сообщение Добавлено: 24 Ноябрь 2004, 00:23:28 

Цитата:
Что ты объяснил я знал, но решать свою задачу, разбивая архив на несколько php файлов, в каждом прописав $i<10, потом $i<20 и $i<30 неразумно


совершенно верно. неразумно.
На этом форуме - тысячи топиков.
ты думаешь, что для них написаны тысячи скриптов пхп?
Нет, написан один.
в который передается в адресной строке номер топика.

Ты знаком с таким понятием, как передача в адресеной строке переменных?
ты можешь сделать ссылку arhiv.php?nomer=10?
а в самом скрипте взять, и подставить $_GET['nomer'] в for?
<sergio.ga>
новый человек
0
Сообщения: 102
Зарегистрирован: 13.06.03
Откуда: Харьков, Украина
Сообщение Добавлено: 24 Ноябрь 2004, 10:32:15 
array_slice()
da-khosh Муж.
новый человек
0
Сообщения: 68
Зарегистрирован: 23.09.01
Откуда: Москва
Сообщение Добавлено: 25 Ноябрь 2004, 14:33:10 
Вот снова Я!
Как и обещал чебургену выкладываю свой гимор

Новости выводятся в файле mass.php. Вывожу их через mass.php?id=edit&page=4&next=8
Код:
$base="file.txt";
$file = file($base);
$news_page = 4;
if($id=="edit"){
         echo "<hr>";
         $all = count($file);
   for($i=$next;$i<$page;$i++) {
    echo "$file[$i]";
    echo "<hr>";
   }
   $i = $i+$news_page;
   $next = $next+$news_page;
   if($i <= count($file)){
   echo "Следующий архив: <a href='?id=edit&page=$i&next=$next'>archiv</a>";
   }
   else if ($i > count($file)){
   echo "Архива больше нет!";
   }

Пока только смог придумать это. Если что не понятно написал, то это из-за моей малограмотности кода...
MpaK999 Муж.
участник
1
Сообщения: 1716
Зарегистрирован: 14.11.02
Откуда: Ufa/Russia
Сообщение Добавлено: 26 Ноябрь 2004, 11:37:12 
da-khosh, бросайте программирование, пишите картины маслом.

_________________
:: metal kick ass ::
Akela
Констататор
12
Сообщения: 3239
Зарегистрирован: 03.05.02
Откуда: Европа
Сообщение Добавлено: 26 Ноябрь 2004, 11:40:27 
MpaK999, это чтоб потом также ужасаться в разделе "Эстетизация"? ;)
Akela
Констататор
12
Сообщения: 3239
Зарегистрирован: 03.05.02
Откуда: Европа
Сообщение Добавлено: 26 Ноябрь 2004, 12:11:45 
Сорри, в догонку: в коде имхо наиболее адекватно
Код:
echo "Архива больше нет!";
da-khosh Муж.
новый человек
0
Сообщения: 68
Зарегистрирован: 23.09.01
Откуда: Москва
Сообщение Добавлено: 26 Ноябрь 2004, 12:20:09 
Спасибо за разумные советы о светлейшие умы РОССИИ. Чтобы я без вас делал…? Наверно спокойно жил бы!
За сим прощаюсь, коль разумного услышать от вас не могу.

Администрация может убирать этот топик. Путного тут мало :)
Akela
Констататор
12
Сообщения: 3239
Зарегистрирован: 03.05.02
Откуда: Европа
Сообщение Добавлено: 26 Ноябрь 2004, 12:24:58 
Самое интересное, что объясняли подробнейшим образом. Ссылки давали. Даже предлагали код за него написать. Вопрос: на что обиделся? Что не стали учить с нуля и до высшей квалификации? Так это за деньги и немалые, и не тут. :killanasshole:
da-khosh Муж.
новый человек
0
Сообщения: 68
Зарегистрирован: 23.09.01
Откуда: Москва
Сообщение Добавлено: 26 Ноябрь 2004, 12:33:57 
Я разве не поблагодарил?
Я всё прочёл (не всё понял), но намотал на ус и даже смог сделать свой примитивный пример. :beer:
Akela
Констататор
12
Сообщения: 3239
Зарегистрирован: 03.05.02
Откуда: Европа
Сообщение Добавлено: 26 Ноябрь 2004, 12:44:01 
da-khosh, ну и славненько! Но вообще лучше текстовиками для этого не пользоваться, скажу по секрету. Даже для небольшого количества сообщений. СУБД на это есть, и сними намного проще.
da-khosh Муж.
новый человек
0
Сообщения: 68
Зарегистрирован: 23.09.01
Откуда: Москва
Сообщение Добавлено: 26 Ноябрь 2004, 13:02:18 
Ээээ... Текстовиками, где не пользоваться?
При написании php кода или ещё чего? Я пишу через EditPlus.
СУБД - это что? :confused:
Akela
Констататор
12
Сообщения: 3239
Зарегистрирован: 03.05.02
Откуда: Европа
Сообщение Добавлено: 26 Ноябрь 2004, 13:07:00 
da-khosh, не хранить данные в текстовых файлах, а хранить их в базах. Которые управляются посредством Систем Управления Базами Данных.
da-khosh Муж.
новый человек
0
Сообщения: 68
Зарегистрирован: 23.09.01
Откуда: Москва
Сообщение Добавлено: 26 Ноябрь 2004, 13:15:15 
Многие говорят, что не большую базу с данными не зачем хранить в мускул.
Да и начинать изучение сразу с неё будет не разумно. Я действую от простого к сложному! :)
Akela
Констататор
12
Сообщения: 3239
Зарегистрирован: 03.05.02
Откуда: Европа
Сообщение Добавлено: 26 Ноябрь 2004, 13:25:20 
da-khosh, не уверен, что это от простого. Что касается величины... Хрен знает как она может вырасти и что тебе от ея потребуется.
Чебурген
соучастник
3
Сообщения: 315
Зарегистрирован: 29.08.04
Сообщение Добавлено: 26 Ноябрь 2004, 16:07:47 
пример, кстати, вполне нормальный.
ну, зачем-то передается конечное значение, вместо того, чтобы быть вычисленным в скрипте.
есть некоторые лишние действия, нет некоторых нужных
Но принцип он уловил верно. Остальное нарастет.

База, я считаю - лишняя.
и не потому, что для маленьких проектов она не нужна.
просто понять прелесть базы может только тот, кто столкнулся с ограничениями текстовых файлов.
То что так же, как понять прелесть динамического сайта сможет только тот, кто делал и поддерживал хоть один в своей жизни статический.
Akela
Констататор
12
Сообщения: 3239
Зарегистрирован: 03.05.02
Откуда: Европа
Сообщение Добавлено: 26 Ноябрь 2004, 16:17:35 

Цитата:
понять прелесть базы может только тот, кто столкнулся с ограничениями текстовых файлов.
То что так же, как понять прелесть динамического сайта сможет только тот, кто делал и поддерживал хоть один в своей жизни статический.

- СВЯТЫЕ СЛОВА! ;) Подписываюсь! :)
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 28 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100