Systém novinek v PHP a MySQL - popis tabulek

Než začnu popisovat to, jak celý systém funguje, měl bych asi nejdřív popsat definice tabulek. Celý systém se skládá ze dvou tabulek — tabulka bb_users a tabulka bb_news, přičemž hlavní a nejdůležitější tabulkou je tabulka bb_news, ve které jsou uloženy všechny novinky.

Tabulka bb_users

Tabulka slouží pouze pro uložení přihlašovacího jména, hesla a e-mailu tzv. administrátora novinek. Vzhledem k tomu, že jsem ten systém dělal v podstatě pouze pro sebe, tak se mi nechtělo systém navrhovat moc sofistikovaně a rozhodl jsem se, že k němu bude mít přístup pouze jeden uživatel. Do budoucna to půjde případně rozšířit.

Tabulku jsem vytvořil následujícím SQL příkazem:

CREATE TABLE bb_users (
  id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  user VARCHAR(32) NOT NULL,
  pass VARCHAR(32) NOT NULL,
  mail VARCHAR(255) NOT NULL,
  PRIMARY KEY(id)
)

Obsahuje atributy:

  • id (jednoznačný identifikátor, automaticky se inkrementující),
  • user (jménoo uživatele),
  • pass (heslo),
  • mail (e-mailová adresa).

Tabulka bb_news

Tabulka slouží k uložení všech novinek. Vytvořil jsem ji nálsedujícím SQL příkazem:

CREATE TABLE bb_news (
  id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  date DATE NOT NULL DEFAULT '0000-00-00',
  head VARCHAR(50) NOT NULL,
  cont TEXT NOT NULL,
  showdate ENUM('0','1') NOT NULL DEFAULT '1',
  formatcont ENUM('0','1') NOT NULL DEFAULT '1',
  PRIMARY KEY(id)
)

Obsahuje atributy:

  • id (jednoznačný identifikátor, automaticky se inkrementující),
  • date (datum novinky),
  • head (nadpis novinky),
  • cont (vlastní obsah novinky),
  • showdate (přepínač toho, zda se má při vypisování novinky vypisovat datum novinky),
  • formatcont (přepínač toho, zda se má při vypisování novinky provádět formátování obsahu novinky).

Systém novinek v PHP a MySQL - úvod

Tak se mi dnes (snad) podařilo dokončit můj systém novinek naprogramovaný v PHP a využívající databáze MySQL, jak jsem o tom psal v předchozím příspěvku.

Bohužel teď nemám moc času na to, abych se o tom více rozepsal, takže jen uvedu, že systém bude, kromě přidávání nových novinek, umět novinky editovat i mazat. Zobrazování novinek na stránkách pak bude možné ve třech módech:

  • jako definiční seznamy — DL,
  • netříděné seznamy — UL
  • jako odstavce — P.

Víc o tom napíšu v příštím příspěvku (snad zítra).

Systém novinek v PHP a MySQL - představa

Začínám pomalu ale jistě pronikat do programování MySQL v PHP a rozhodl jsem se, že mým prvním "větším" projektem, na kterém se hodlám učit, bude projekt systému novinek. Abych nezapomněl na to, jakou mám představu, rozhodl jsem se napsat tento článek a možná ho později doplním o další články, ve kterých popíšu moje řešení.

Systém by měl fungovat tak, že bude rozdělen na administrační čast a na funkční část, přičemž funkční část bude obsahovat (asi) jen jednu funkci, řekněme GetNews([pocet]), která bude vracet buď seznam všech novinek v databázi (to v případě nezadání parametru) nebo nastavený počet novinek. Administrační část pak bude obsahovat možnost přihlášení (zatím uvažuju jen o jednom uživateli — viz dále) a po přihlášení možnost přidávání, editace a asi i mazání novinek.

Takže si to představuju zhruba tak, že budou existovat dvě tabulky. Tabulka uživatelů a tabulka novinek. Tabulka uživatelů bude obsahovat položky:

  • jméno,
  • heslo,
  • e-mail.

Tabulka novinek bude obsahovat položky:

  • datum,
  • název,
  • obsah,
  • zobrazit_datum (dvoustavový přepínač),
  • formatovat_obsah (dvoustavový přepínač).

Veškerý kód systému bude v jednom adresáři. Tento adresář bude stačit nahrát na server a pak ho bude možné používat (zadáním adresy www.example.com/news/. Instalace (vytvoření tabulek a registrace "administrátora") se provede při prvním přístupu do systému. Součástí instalce bude definice přihlašovacího jména a hesla administrátora. Zatím nemám v úmyslu umožnit registraci více uživatelů, ale pravděpodobně by se to pak později dalo rozšířit. Po provedení instalace pak již bude možné se sestémem začít pracovat, tedy hlavně přidávat novinky, případně pak editovat a/nebo mazat novinky.

Ještě jednou opakuji, že tento článek slouží spíš jen pro moji potřebu a nemám v úmyslu používat nějaká již hotová řešení. Chci se to naučit sám.


Přeskočit na obsah