Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание ленты новостей 
:(
    Опции темы
Рыжий
  Дата 22.1.2005, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: 2
Всего: 20



Итак, я тут делаю ленту новостей для своего сайта, и немного напоролся так сказать! Вроде думал что это самый простой скрипт - сделаю, раз плюнуть, но оказалось все гораздо посложнее smile

Значит так, я использую следующий алгоритм:
Во первых нам нужно сделать страницу с которой я буду заполнять новости. Полей будет 2 - $title и соответственно $news.

Второе - обрабатываем формы и сохраняем в 2 (так удобней мне) файлах. Ну назовем их title.txt и news.txt и записываем в них текст, должно быть что то вроде этого
Код

echo "$news.\t";


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

Далбше идет считывание с файлов и запись в массив, а вот тут я что то запоролся, у еня код вот такой

Код

$i=readfile("news.txt");
$novos=explode('\t',$i);


по ходу все должно записываться в массив $novos ну вроде все проходит успешно.

Но вот дальше следует вывести инфу на экран - это проблема

я использую функцию array_reverse($novos); для того чтобы перевернуть его и выводить последнюю новость в конце.

а дальше можно пойти двумя путями для вывода: или функция foreach или просто for вот даже и не знаю, вообщето можно было бы оформить так:

Код

for ($i=0; $i<count($novos);$i++)
{
array_reverse($novos);
echo "$novos[$i]";
}


и можно даже сделать её как собственную функцию и применять, но чето вроде тут не то. че то плохо выводится smile НУ в общем я много доработок делаю но чето все не то, как то не помогает, подскажите какой оптимальный вариант?? какие функции все же использовать?
Вроде у меня все smile

Это сообщение отредактировал(а) D-Bugger - 22.1.2005, 00:45
PM MAIL ICQ   Вверх
BIG BROTHER
Дата 22.1.2005, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 9.12.2004
Где: Россия, Москва

Репутация: 2
Всего: 4



readfile() читает файл и пишет его в буфер вывода
тут нужна функция file() для чтения файла в массив
--------------------
Mess with the best, die like the rest
PM MAIL ICQ   Вверх
Рыжий
Дата 22.1.2005, 02:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: 2
Всего: 20



спасибо учту, это тоже очень важно, Какие ещё предложения?
PM MAIL ICQ   Вверх
BIG BROTHER
Дата 22.1.2005, 02:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 9.12.2004
Где: Россия, Москва

Репутация: 2
Всего: 4



Код
for ($i=0; $i<count($novos);$i++)
{
array_reverse($novos);
echo "$novos[$i]";
}

если уж на то пошло, то так тогда:
Код
$n_news = array_reverse($novos);
for ($i=0; $i<count($n_news);$i++)
{
echo $n_news[$i];
}




Добавлено @ 02:10
писать нужно одну новость на одной строке, а потом file, потом переворот массива ии вывод в цикле
--------------------
Mess with the best, die like the rest
PM MAIL ICQ   Вверх
Chuck
Дата 22.1.2005, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Сушня
**


Профиль
Группа: Эксперт
Сообщений: 442
Регистрация: 12.12.2003
Где: Узбекистан, Ташке нт

Репутация: нет
Всего: 9



Я бы тебе посоветовал использовать базу (mysql)! Это не сложно, будут проблемы - поможем!
Все +ы базы:
1. можно быстро получить отсортированный список новостей!
2. удалить группу новостей (скажем, за прошлый месяц все новости)
3. пропадает надобность возиться со знаками переноса строки, табуляциями!
4. высокая скорость!
база будет такая
news_id - уникальный номер
news_body - сама новость
news_date - дата добавления
news_author - автор новости
news_url - откуда новость взята smile

Если что, пиши!
PM MAIL WWW GTalk   Вверх
Рыжий
Дата 22.1.2005, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: 2
Всего: 20



да нет тут я базу как раз не хочу использовать. тут и она не нужна, мне на сайт скромненький и текстовые файлы сойдут, я лично так считаю, хотя возможно и базу данный использовать... Просто быстрее будет работать, Ну ладно я подумаю smile
А пока спасибо за советы
PM MAIL ICQ   Вверх
Рыжий
Дата 22.1.2005, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: 2
Всего: 20



Ну ладненько, уговорили, буду успользовать MySql хотя я его не знаю, но документацию уже нашел.
В общем так, я думаю праввильно будет использовать phpmyadmin вот как я делаю: я захожу в базу данных MySql и пишу - создать новую таблицу, например news на 5 полей. итак передо мной появляется разные опции, и я пишу так

Поле - news_id
Тип - TinyInt
Длины/Значения а вот что тут писать? я например пишу 20 мол это длина поля и все.
Атрибуты - везде пишу unsigned
Ноль - тое null (везде)
По Умолчанию - оставляю пустым! а че там писать?
Дополнительно - auto_incriment (это я только в ID прописал, остальные я оставил пустыми)
А дальше нужно расставить галочки, на самом первом я поставил - Первичный, а на других указал поле где пробелы стоят, мол им ничего не присвоить?
и когда создаю таблицу - он мне выдает ошибку!!!
Остальные все поля я пишу тип строковой или datetime (для времени) и везде пишу unsigned нигде не пишу auto_incriment кроме первого

Ну так какие ошибки?? рекомендации?, а я пока тут документацию читаю smile
PM MAIL ICQ   Вверх
penizillin
Дата 22.1.2005, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 10.11.2004

Репутация: 8
Всего: 9



TinyInt unsigned - интервал от 0 до 255, т.е. длина поля может быть максимум 3 байта, т.е. нет смысла давать ей более чем. или я ошибаюсь? afaik можно ее не указывать, вообще.

а какие ошибки - это вы нам подскажите, вы их читаете.
PM MAIL ICQ   Вверх
Irokez
Дата 22.1.2005, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: 22
Всего: 53



а какую ошибку?
PM   Вверх
BIG BROTHER
Дата 22.1.2005, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 9.12.2004
Где: Россия, Москва

Репутация: 2
Всего: 4



если ставить auto_increment, то нужно добавить unique - иначе PMA не создаст талицу, вроде так
--------------------
Mess with the best, die like the rest
PM MAIL ICQ   Вверх
Mal Hack
Дата 22.1.2005, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(BIG @ 22.1.2005, 17:19)
если ставить auto_increment,

то надо делать поле ключевым. А будет это уникуе или праймари кей особой разницы нет.
PM ICQ   Вверх
Рыжий
Дата 22.1.2005, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: 2
Всего: 20



Выдает вот это

#1064 - You have an error in your SQL syntax near '(500) UNSIGNED NOT NULL, `news_date` TIMESTAMP(30) UNSIGNED NOT NULL, `news_url`' at line 1

Странно. Может поможите?

И ещё одно только заметил у меня, когда я захожу в базу данных MySql в низу где можно добавть таблицу - выводится такая штука:

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

Вот так в общем.



Добавлено @ 18:05
Ага, и ещё хочу спросить как нужно защитить мою базу данных, у меня стоит денвер, что там настроить/изменить надо??
PM MAIL ICQ   Вверх
Mal Hack
Дата 22.1.2005, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(D @ 22.1.2005, 18:04)
Ошибка
Дополнительные возможности для работы со связанными таблицами недоступны. Для определения причины нажмите сюда

Это все фигня...


D-Bugger
дай пролностью запрос, который получается.

Цитата(D @ 22.1.2005, 18:04)
TIMESTAMP(30) UNSIGNED NOT NULL

Скорее всего лагает.
PM ICQ   Вверх
penizillin
Дата 22.1.2005, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 10.11.2004

Репутация: 8
Всего: 9



timestamp разве бывает signed/unsigned?
PM MAIL ICQ   Вверх
Рыжий
Дата 22.1.2005, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: 2
Всего: 20



УРРА получилось в общем, я везде убрал unsigned кроме первого конечно, на news_body база сама мне поставила binary а на news_date сама поставила NULL странно даже. и ещё одна ошибка, я на news_body поставил тип - BLOB и указал его длинну - оказалось этого не надо было.

Ну вроде бы пока все, Щас буду пробовать вносить туда данные, потом их сортировать и соответственно выводить smile
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.5104 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.