
Naravno, sve vesti bice skladistene u mysql bazi, nazovimo je db_news (logicno, zar ne). Evo mysql strukturne sheme za vasu bazu podataka:
CREATE TABLE db_news (
id int(10) NOT NULL auto_increment,
text blob NOT NULL,
datum timestamp(14) NOT NULL,
title varchar(100) NOT NULL default '',
PRIMARY KEY (id)
) ENGINE=MyISAM;
Sada, kada imamo bazu, uradicemo news skripticu. News system nam se sastoji iz dva dela: iz fajla index.php gde pregledamo sve vesti i iz admin.php gde dodajemo i brisemo vesti. Pozeljno bi bilo fajl admin.php zastititi preko nekog login systema ili jednostavno staviti admin.php u zaseban dir pa onda uraditi .htaccess za taj dir. Sve to u cilju da bi ste samo vi mogli da dodajete i brisete vesti i niko vise.
Prvo cemo uraditi admin.php. U ovom fajlu potrebno je izlistati sve vesti i pored svake vesti dodati link "Delete" kako biste mogli da obrisete neku vest koja je zastarela ili iz nekog drugog razloga.
<?
//admin.php
include "db.php";
//display all the news
$result=mysql_query("select count(id) from db_news", $db);
while ($myrow=mysql_fetch_row($result)) {
echo " (<b>$myrow[0]</B> posts in the news)<p>";
}
echo "<TABLE border='1' bordercolor='#E2E2E2' cellspacing='0' cellpadding='1' width='100%'><tr bgcolor='#C0C0C0' bordercolor='1'><B><td><B>Date</B></td><td><B>News</B></td></B></tr>";
$result=mysql_query("select * from db_news order by datum desc", $db) or die (mysql_error());
while ($myrow=mysql_fetch_row($result)) {
$txt=nl2br($myrow[1]);
echo "
<TR bordercolor='1'>";
make_date1();
echo "
<TD>$date1</TD>
<TD>$myrow[3] - $txt [<a href='del.php?number=$myrow[0]'>Delete it!</a>]<p></td>
</TR>
";
}
echo "</table>";
echo "<CENTER><form action='post_news.php' method='post'>
Title: <INPUT TYPE='text' NAME='title'><p>
News: <TEXTAREA NAME='news' ROWS='10' COLS=100></TEXTAREA><p>
<CENTER><INPUT TYPE='submit' value='Post news!'></CENTER>
</form>";
?>
Sada na red dolazi fajl post_news.php koji sluzi da nam proveri podatke i potom unese novu vestu bazu podataka:
<?
//post_news.php
include "inc.php";
$news=htmlspecialchars($news);
$title=htmlspecialchars($title);
$result=mysql_query("insert db_news set text='$news', title='$title'", $db);
echo "<CENTER><p>News posted... I am taking you back...<meta http-equiv='refresh' content='2; url=admin.php'></CENTER>";
?>
Dakle, za sada imamo admin.php i post_news.php. Red je da uradimo i stranicu za brisanje vesti -- del.php:
<?
//del.php
include "inc.php";
$result=mysql_query("delete from db_news where id='$number'", $db);
echo "<CENTER>News entry deleted! I am taking you back...<meta http-equiv='refresh' content='2; url=admin.php'></CENTER>";
?>
Eto sada imamo sva tri fajla koja sacinjavaju administratorski deo nase news skripte, dakle admin.php, post_news.php kao i del.php.
Kao sto znamo, potrebno je jos samo da odradimo i index.php -- stranica na kojoj ce sve nase vesti biti izlistane i koju ce drugi ljudi moci da vide bez problema. To nece biti tesko s obzirom da smo vec izlistali vesti u fajlu admin.php.
Dakle:
<?
//index.php
include "inc.php";
$result=mysql_query("select * from db_news order by datum desc", $db) or mysql_error();
while ($myrow=mysql_fetch_row($result)) {
make_date1();
$txt=nl2br($myrow[1]);
echo "<B>$myrow[3]</B> [$date1]<br><br>
$txt<hr>";
}
?>
Obrattite paznju da se svo vreme u igru ubacuje i fajl inc.php koji se non stop includuje. U fajl inc.php trebate da stavite deklaraciju vase baze podatake i povezivanje na istu. Takodje u fajlu inc.php nalazi se i funkcija za lepo formatiranje datuma od mysql funkcije timestamp(14). inc.php bi izlgedao npr:
<?
define("HOST", "vas_hostname");
define("USER", "vas_username_ovde");
define("PASSWORD", "vasa_sifra_ovde");
define("DATABASE", "ime_baze");
//connecting to the database
$db=mysql_connect(HOST, USER, PASSWORD);
mysql_select_db(DATABASE, $db);
function make_date1() {
global $d1, $year1, $month1, $day1, $hour1, $min1, $sec1, $date1, $myrow;
$d1=$myrow[2];
$year1=substr($d1, 0, 4);
$month1=substr($d1, 4, 2);
$day1=substr($d1, 6, 2);
$hour1=substr($d1, 8, 2);
$min1=substr($d1, 10, 2);
$sec1=substr($d1, 12, 2);
return $date1="$month1-$day1-$year1 @ $hour1:$min1";
}
?>
E to bi bilo to

Ziveli!