Scripts
Basis nieuwsscript
Een zeer simpele nieuwsscript, waarbij nu nog via phpmyadmin de nieuwsbericten moet invoegen. Ook is deze script zeer makkelijk te veranderen. Zie ook commentaar in m'n script. sql: CREATE TABLE news ( id int(10) unsigned NOT NULL auto_increment, postdate timestamp(14), title varchar(50) NOT NULL, newstext text NOT NULL, PRIMARY KEY (id), KEY postdate (postdate) ); CREATE TABLE news_comments ( id int(10) unsigned NOT NULL auto_increment, news_id int(10) unsigned DEFAULT '0' NOT NULL, name varchar(40) NOT NULL, comment text NOT NULL, PRIMARY KEY (id), KEY news_id (news_id) );
basis-nieuwsscript
<?php
$max_items = 5; //maximaal aantal te tonen news items
//het maken van een mysql connectie
$db = mysql_connect ('localhost','root','');
mysql_select_db ('test',$db);
//Hieronder niks veranderen als je niks van php weet.
function displayNews($all = 0) {
//het samevoegen van de twee varibalen $db en $max_items
global $db, $max_items;
if ($all == 0) {
//Het weergeven volgens het $max_items
$query = "SELECT id,title,newstext," .
"DATE_FORMAT(postdate, '%Y-%m-%d') as date " .
"FROM news ORDER BY postdate DESC LIMIT $max_items";
} else {
//Weergeven van al het nieuws als $max_items niet is ingevuld
$query = "SELECT id,title,newstext," .
"DATE_FORMAT(postdate, '%Y-%m-%d') as date " .
"FROM news ORDER BY postdate DESC";
}
$result = mysql_query ($query);
while ($row = mysql_fetch_assoc ($result)) {
//Nieuws weergevn via een zeer simpele table constructie
echo "<TABLE border=\"1\" width=\"300\">\n";
//het verwijderen van de html tags
$date = $row['date'];
$title = htmlentities ($row['title']);
$news = nl2br (strip_tags ($row['newstext'], '<a><b><i><u>'));
//Het nieuws outputten
echo "<TR><TD><b>$title</b> posted on $date</TD></TR>\n";
echo "<TR><TD>$news</TD></TR>\n";
//Het aantal commentaren tellen
$comment_query = "SELECT count(*) FROM news_comments " .
"WHERE news_id={$row['id']}";
$comment_result = mysql_query ($comment_query);
$comment_row = mysql_fetch_row($comment_result);
//Het weergeven vaan een commentaar link
echo "<TR><TD><a href=\"{$_SERVER['PHP_SELF']}" .
"?action=show&id={$row['id']}\">Comments</a>" .
"($comment_row[0]}</TD></TR>\n";
//Tabel afsluiten
echo "</TABLE>\n";
echo "<BR>\n";
}
//Link weergeven als niet al het nieuws te zien is
if ($all == 0) {
echo "<a href=\"{$_SERVER['PHP_SELF']}" .
"?action=all\">View all news</a>\n";
}
}
function displayOneItem($id) {
global $db;
//Weergeven van een bepaalde item
$query = "SELECT * FROM news WHERE id=$id";
$result = mysql_query ($query);
//Als geen resultaat dan:
if (mysql_num_rows ($result) == 0) {
echo "Bad news id\n";
return;
}
$row = mysql_fetch_assoc($result);
echo "<TABLE border=\"1\" width=\"300\">\n";
//html troep eruit filteren
$title = htmlentities ($row['title']);
$news = nl2br (strip_tags ($row['newstext'], '<a><b><i><u>'));
//items weergeven
echo "<TR><TD><b>$title</b></TD></TR>\n";
echo "<TR><TD>$news</TD></TR>\n";
echo "</TABLE>\n";
echo "<BR>\n";
//commentaar tonen
displayComments($id);
}
function displayComments($id) {
global $db;
//query voor commentaar
$query = "SELECT * FROM news_comments WHERE news_id=$id";
$result = mysql_query ($query);
echo "Comments:<BR><HR width=\"300\">\n";
//al het commentaar weergeven
while ($row = mysql_fetch_assoc ($result)) {
echo "<TABLE border=\"1\" width=\"300\">\n";
$name = htmlentities ($row['name']);
echo "<TR><TD><b>by: $name</b></TD></TR>\n";
$comment = strip_tags ($row['comment'], '<a><b><i><u>');
$comment = nl2br ($comment);
echo "<TR><TD>$comment</TD></TR>\n";
echo "</TABLE>\n";
echo "<BR>\n";
}
//nieuw commentaar formulier invoegen
echo "<HR width=\"300\">";
echo "<FORM action=\"{$_SERVER['PHP_SELF']}" .
"?action=addcomment&id=$id\" method=POST>\n";
echo "Name: <input type=\"text\" " .
"width=\"30\" name=\"name\"><BR>\n";
echo "<TEXTAREA cols=\"40\" rows=\"5\" " .
"name=\"comment\"></TEXTAREA><BR>\n";
echo "<input type=\"submit\" name=\"submit\" " .
"value=\"Add Comment\"\n";
echo "</FORM>\n";
}
function addComment($id) {
global $db;
//commentaar invoegen
$query = "INSERT INTO news_comments " .
"VALUES('',$id,'{$_POST['name']}'," .
"'{$_POST['comment']}')";
mysql_query($query);
echo "Comment entered. Thanks!<BR>\n";
echo "<a href=\"{$_SERVER['PHP_SELF']}" .
"?action=show&id=$id\">Back</a>\n";
}
//de output
echo "<CENTER>\n";
switch($_GET['action']) {
case 'show':
displayOneItem($_GET['id']);
break;
case 'all':
displayNews(1);
break;
case 'addcomment':
addComment($_GET['id']);
break;
default:
displayNews();
}
echo "</CENTER>\n";
?>
Reacties
0