Автор Тема: Помогите разобраться с вложениями в PHP  (Прочитано 5937 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн 3D-Dragon

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 161
  • +0/-0
  • 0
    • Просмотр профиля
    • http://wp-club.net
Я начинающий в PHP помогите разобраться.

Я вставляю новости на сайте в зависимости от вызываемой даты (1810 - это например 18 октября)
в url путем вложения в index.php и добавления к ссылке $news=1810

$url = "";
if ($link == 1110) { $url = "news/1110.html"; }
if ($link == 1510) { $url = "news/1510.html"; }
if ($link == 1710) { $url = "news/1710.html"; }
if ($link == 1810) { $url = "news/1810.html"; }
# и т.д.
if ($url == "") { $url = "error.phtml"; }
INCLUDE ($url);

Этот список постоянно растет и очень неудобно его постоянно пополнять и редактировать.

Вопрос:
Как можно (если можно) присвоить дате (1810) переменную и вызывать eё из url типа
http://127.0.0.1/index.php?news=(переменная)
а потом эта переменная будет обрабатываться скриптом и выдавать нужную ссылку ?

Или как по другому организовать все это.
Хочу все это сделать на MySQL, но как у начинающего ничего не получается :(
Всё в одном месте для начинающих и профессионалов
-= Web-Profi CLUB =-  Хостинг (бесплатный, платный, dedicated), Баннерная Сеть, Форум для web-мастеров

Оффлайн VaV

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 364
  • +0/-0
  • 0
    • Просмотр профиля
Помогите разобраться с вложениями в PHP
« Ответ #1 : 27 Ноября 2001, 19:56:26 »
Цитировать
if ($link == 1110) { $url = "news/1110.html"; }
if ($link == 1510) { $url = "news/1510.html"; }
if ($link == 1710) { $url = "news/1710.html"; }
if ($link == 1810) { $url = "news/1810.html"; }


можно заменить без mysql
для вывода всех новостей по возрастанию

for ($i=1;$i<=12;$i++) {
 for (
$j=1;$j<=31;$j++) {
 {
  
$link=$i.$j;
  
$url="news/".$link.".html";
  if (@
fopen ($url"r") { INCLUDE ($url);} 
 }
}


могут быть неточности с fopen
звиняйте ляпал быстро по теории

Оффлайн Stek

  • Обожатель PHP
  • Ветеран
  • *****
  • Сообщений: 532
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.phpdevs.com
Помогите разобраться с вложениями в PHP
« Ответ #2 : 27 Ноября 2001, 19:57:28 »
Если правильно понял

$link=trim($link);

if ($link) {
 $url="news/".$link.".html";
}
else {
 $url = "error.phtml";
}
INCLUDE ($url);
PHP без башни - сделай свою жизнь разнообразнее.
Разбираю скрипты, собираю заново, вытираю пыль с баз данных.

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Помогите разобраться с вложениями в PHP
« Ответ #3 : 27 Ноября 2001, 20:02:03 »
в MySQL усе просто

create table news(
id int(11) NOT NULL auto_increment,
date datetime,
body text,
PRIMARY KEY  (id),
UNIQUE KEY id (id)
)

а потом с помощью php выводить:

$result = mysql_query("select * from news order by date desc limit 5");
while($row = mysql_fetch_array($result)) {
  print $row["date"]." - ".$row["body"]."
\\n";
}

order by date desc - сортировать по дате,
limit 5 выводить последние пять новостей.

а добавлять -
mysql_query("insert into news values(\'\', \'2001-11-27 11:11:11\', \'моя новость номер 1\')");

можно просто поле date а не datetime, тогда будет просто \'2001-11-27\'
Евгений aka Razor,

Оффлайн 3D-Dragon

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 161
  • +0/-0
  • 0
    • Просмотр профиля
    • http://wp-club.net
Помогите разобраться с вложениями в PHP
« Ответ #4 : 27 Ноября 2001, 20:31:21 »
Спасибо, не ожидал так быстро ответа и столько вариантов !!!
Уже запутался :(

Britva
Я все таки хочу это сделать на MySQL.

Дело в том что новости выходят не всегда ежедневно и выводить их нужно по ссылкам из календаря.
Если "не влом" глянь структуру на http://all-xp.net.ru
Всё в одном месте для начинающих и профессионалов
-= Web-Profi CLUB =-  Хостинг (бесплатный, платный, dedicated), Баннерная Сеть, Форум для web-мастеров

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Помогите разобраться с вложениями в PHP
« Ответ #5 : 27 Ноября 2001, 20:38:39 »
Можно закинуть все новости в БД, а при отрисовывании календаря проверять, существует ли новость в таблице.

Вот посмотри я для теста выложил - http://ms.eugeny.com/news.php
Есть хороший класс - DateCalc для всего этого
Евгений aka Razor,

Оффлайн 3D-Dragon

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 161
  • +0/-0
  • 0
    • Просмотр профиля
    • http://wp-club.net
Помогите разобраться с вложениями в PHP
« Ответ #6 : 27 Ноября 2001, 21:24:01 »
Britva
Мне стыдно за незнания, как новости запихивать в базу и как быть со старыми новостями ?
И где взять этот DateCalc ?
« Последнее редактирование: 27 Ноября 2001, 21:35:16 от 3D-Dragon »
Всё в одном месте для начинающих и профессионалов
-= Web-Profi CLUB =-  Хостинг (бесплатный, платный, dedicated), Баннерная Сеть, Форум для web-мастеров

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Помогите разобраться с вложениями в PHP
« Ответ #7 : 27 Ноября 2001, 21:43:21 »
почитай для начала статьи на
http://webscript.ru
http://detail.phpclub.net

Цитировать
и как быть со старыми новостями ?

конвертер написать :)

Цитировать
И где взять этот DateCalc ?

пиши, я могу выслать
Евгений aka Razor,

Оффлайн 3D-Dragon

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 161
  • +0/-0
  • 0
    • Просмотр профиля
    • http://wp-club.net
Помогите разобраться с вложениями в PHP
« Ответ #8 : 27 Ноября 2001, 21:51:59 »
Прочитал то я практически все, только толку от этого никакого :(
Я так и не нашел нормального примера по MySQL

Везде написано типа как ты написал

create table news(
id int(11) NOT NULL auto_increment,
date datetime,
body text,
PRIMARY KEY (id),
UNIQUE KEY id (id)
)

Мне понятно, что создается таблица news c полями id, date, body.
Но я никак не пойму для чего эти null, not null, primary key :(
И что с этой таблицей делать дальше.
Кстати полно статей как выводить данные, а как вводить не встречал.
Всё в одном месте для начинающих и профессионалов
-= Web-Profi CLUB =-  Хостинг (бесплатный, платный, dedicated), Баннерная Сеть, Форум для web-мастеров

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Помогите разобраться с вложениями в PHP
« Ответ #9 : 27 Ноября 2001, 21:55:53 »
вообщем то просто можно перевести с англ. на русский
primary key - первичный ключ, unique key - уникальный
null - ноль
not null не ноль, т.е. поле не может быть 0, или пусто.

купи книжечку http://books.ru/shop/books/9673
Евгений aka Razor,

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Помогите разобраться с вложениями в PHP
« Ответ #10 : 27 Ноября 2001, 22:23:21 »
ИМХО если не планируется поиск по новостям, то лучше сделать таблицу вроде такого
CREATE TABLE news(
id int not null auto_increment,
date date,
primary key(id));

А тексты новостей хранить в отдельной папке в файлах с именами .txt и при выводе новостей вставлять их с помощью virtual().
Такая таблица имеет фиксированную длинну а значит быстрее работает.

А при отрисовке календаря делать примерно такое:
SELECT  id,DAYOFMONTH(date) AS day FROM news WHERE YEAR(date)=$year and MONTH(date)=$month" ORDER BY date ASC;

Получишь id новостей и day - числа указанного месяца ($month) указанного года ($year), на которые есть новость в БД. Используя эти даты рисуешь календарь
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн 3D-Dragon

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 161
  • +0/-0
  • 0
    • Просмотр профиля
    • http://wp-club.net
Помогите разобраться с вложениями в PHP
« Ответ #11 : 04 Декабря 2001, 02:00:23 »
Britva

Я во всем разобрался и уже написал скрипт.

Поделись DataCalc, пожалуйста.
Всё в одном месте для начинающих и профессионалов
-= Web-Profi CLUB =-  Хостинг (бесплатный, платный, dedicated), Баннерная Сеть, Форум для web-мастеров

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Помогите разобраться с вложениями в PHP
« Ответ #12 : 04 Декабря 2001, 19:50:39 »
Пиши, я тебе вышлю (mail at eugeny.com)
а наз-ся он DateCalc а не DataCalc :)
Евгений aka Razor,

Оффлайн 3D-Dragon

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 161
  • +0/-0
  • 0
    • Просмотр профиля
    • http://wp-club.net
Помогите разобраться с вложениями в PHP
« Ответ #13 : 05 Декабря 2001, 14:32:15 »
М-да, спасибо за DateCalc,
но я не пойму как мне его прикрутить к своим нуждам :(
Всё в одном месте для начинающих и профессионалов
-= Web-Profi CLUB =-  Хостинг (бесплатный, платный, dedicated), Баннерная Сеть, Форум для web-мастеров

Оффлайн 3D-Dragon

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 161
  • +0/-0
  • 0
    • Просмотр профиля
    • http://wp-club.net
Помогите разобраться с вложениями в PHP
« Ответ #14 : 05 Декабря 2001, 16:52:10 »
Britva,

Как при отрисовывании календаря проверять, существует ли новость в таблице ?
И как это прикрутить к DateCalk и вывести этот календарь ?
Всё в одном месте для начинающих и профессионалов
-= Web-Profi CLUB =-  Хостинг (бесплатный, платный, dedicated), Баннерная Сеть, Форум для web-мастеров

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28