有一个名为 discussion.php
的表单,用户将在其中填写他/她的问题/讨论并将其发布
到 savedisc.php
。一些 savedisc.php
看起来像这样:
$message = $_POST['message'];
$title = $_POST['title'];
$represents = $_POST['represents'];
//connect to database
//save the content of discussion/question into the database for future use
$sql="INSERT INTO Discussion (Message, Title, Type)
VALUES
('$message','$title','$represents')";
//Display user's question/discussion again
echo $message . "<br />";
echo $title . "<br />";
echo $represents . "<br />";
上面没有显示,但我手动保存 id
字段,即通过 phpmyadmin 当然作为自动增量和主键。因此,Discussion
表中的所有值都将拥有自己唯一的 id
。保存问题/讨论后,我希望能够将 wb.php
上每个问题的 $title
显示为链接,目前看起来像这样(来自 wb.php
的一些代码):
$result = mysql_query("SELECT * FROM Discussion ORDER BY id DESC");
//When user clicks the question/discussion Title, he/she will be directed to wbcomm.php
while($row = mysql_fetch_array($result))
{
echo "<a href='wbcomm.php' >{$row['Title']}</a><br />";
}
到目前为止,一切都很顺利。但是,从现在开始,我想做的是,当用户通过上面的代码单击问题/讨论标题时,我希望他/她被定向到 wbcomm.php?id=1
,其中 id=1
表示问题/讨论的唯一 ID。 wbcomm.php
中的一些代码如下:
if (isset($_GET['id']))
{
//connect to db
$wbid = mysql_real_escape_string($_GET['id']);
$sql = "SELECT * FROM Discussion WHERE id = '$wbid' LIMIT 1";
$res = mysql_query($sql);
if (mysql_num_rows() > 0) {
$discussion = mysql_fetch_object($res);
//display member's question here:
echo $discussion['id'] . "<br />";
echo $discussion['Title'] . "<br />";
echo $discussion['Type'] . "<br />";
echo $discussion['Message'] . "<br />";
}
else {
// discussion does not exist with ID
}
}
但是,由于某种原因,结果是空白的。 IE。问题/讨论甚至没有出现。我究竟做错了什么?我的程序正确吗?
谢谢。
最佳答案
在您的 wb.php
中,您创建了一个指向 wbcomm.php
的链接,但您没有传递讨论的 ID,因此您的 $wbid
将为空。您需要将 ID 与链接一起传递,如下所示:
while($row = mysql_fetch_array($result))
{
echo "<a href='wbcomm.php?id={$row['id']}' >{$row['Title']}</a><br />";
}
关于php - 如何为用户发布的问题提供唯一的 url/id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3409044/