discussion forum from j. meloni's book
| From: | Anthony Ritter | Date: | Wed, 13 Aug 2003 00:56:40 +0000 |
| Subject: | discussion forum from j. meloni's book | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-159376@lists.php.net to get a copy of this message | ||
The following code is From Julie Meloni's textbook - PHP, mySQL and Apache
(SAMS) on page 305-307 / Listing 14.5:
It's the last script of a discussion forum which is comprised of four php
files and one html file.
The script can be seen at:
http://www.thickbook.com
Chapter 14 off the zipfile.
Anyway, in the textbook and the zip her mySQL query reads:
...................
$verify = "select ft.topic_id, ft.topic_title from forum_posts as fp left
join forum_topics as ft on fp.topic_id = ft.topic_id where fp.post_id =
$_GET[post_id]";
.................
The part that I'm confused about is:
...............
select ft.topic_id, ft.topic_title from forum_posts
................
It seem that the alias of ft refers to forum_title - not forum_posts.
In fact, I switched the query to read as follows:
................
$verify = "select ft.topic_id, ft.topic_title from forum_topics as ft left
join forum_posts as fp on fp.topic_id = ft.topic_id where fp.post_id =
$_GET[post_id]";
..................
And that seems to run fine.
Any explanations will be appreciated.
Her original code is below.
Thank you.
Tony Ritter
..........................
<?php
//connect to server and select database; we'll need it soon
$conn = mysql_connect("localhost", "root", "thisisapassword") or
die(mysql_error());
mysql_select_db("sitename",$conn) or die(mysql_error());
//check to see if we're showing the form or adding the post
if ($_POST[op] != "addpost") {
// showing the form; check for required item in query string
if (!$_GET[post_id]) {
header("Location: topiclist.php");
exit;
}
//still have to verify topic and post
$verify = "select ft.topic_id, ft.topic_title from forum_topics as ft
left join forum_posts as fp on fp.topic_id = ft.topic_id where fp.post_id =
$_GET[post_id]";
$verify_res = mysql_query($verify, $conn) or die(mysql_error());
if (mysql_num_rows($verify_res) < 1) {
//this post or topic does not exist
header("Location: topiclist.php");
exit;
} else {
//get the topic id and title
$topic_id = mysql_result($verify_res,0,'topic_id');
$topic_title = stripslashes(mysql_result($verify_res,
0,'topic_title'));
print "
<html>
<head>
<title>Post Your Reply in $topic_title</title>
</head>
<body>
<h1>Post Your Reply in $topic_title</h1>
<form method=post action=\"$_SERVER[PHP_SELF]\">
<p><strong>Your E-Mail Address:</strong><br>
<input type=\"text\" name=\"post_owner\" size=40 maxlength=150>
<P><strong>Post Text:</strong><br>
<textarea name=\"post_text\" rows=8 cols=40 wrap=virtual></textarea>
<input type=\"hidden\" name=\"op\" value=\"addpost\">
<input type=\"hidden\" name=\"topic_id\"
value=\"$topic_id\">
<P><input type=\"submit\" name=\"submit\" value=\"Add
Post\"></p>
</form>
</body>
</html>";
}
} else if ($_POST[op] == "addpost") {
//check for required items from form
if ((!$_POST[topic_id]) || (!$_POST[post_text]) || (!$_POST[post_owner]))
{
header("Location: topiclist.php");
exit;
}
//add the post
$add_post = "insert into forum_posts values ('', '$_POST[topic_id]',
'$_POST[post_text]', now(), '$_POST[post_owner]')";
mysql_query($add_post,$conn) or die(mysql_error());
//redirect user to topic
header("Location: showtopic.php?topic_id=$topic_id");
exit;
}
?>