开发者

How to give a unique url/id to a question posted by the user?

开发者 https://www.devze.com 2023-01-10 18:29 出处:网络
There\'s a form called discussion.php, in which a user will fill out his/her question/discussion and post it to savedisc.php. Some of the savedisc.php looks like this:

There's a form called discussion.php, in which a user will fill out his/her question/discussion and post it to savedisc.php. Some of the savedisc.php looks like this:

$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 />";

It is not shown above, but I am saving the id field manually, i.e. via phpmyadmin as a auto increment and primary key of course. Therefore, all of the values in the table Discussion will have their own unique id. Once the question/discussion is saved, I want to be able to display $title of each question on wb.php as a link, which as of now looks like this(some code from 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 />";
  }

Until here, everything is working smooth. However, from here on, what I'm trying to do is, when the user clicks the question/discussion title via above code, I want him/her to be directed to wbcomm.php?id=1, where id=1 represents the unique id of the question/discussion. Some of the code from wbcomm.php is below:

if (iss开发者_如何学Cet($_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
    }
}

However, for some reason, the result is blank. I.e. the question/discussion doesn't even show up. What am I doing wrong? Is my procedure even correct?

Thank you.


In your wb.php, you create a link to wbcomm.php but you are not passing the ID of the discussion, so your $wbid will be empty. You need to pass the ID along with the link, like this:

while($row = mysql_fetch_array($result))
  {
  echo "<a href='wbcomm.php?id={$row['id']}' >{$row['Title']}</a><br />";
  }


Your ID column is an autoincrement int type so you do not need to put it in quotes or escape it. You should definitely test it to see if it's numeric, though.


Use this SQL mysql_num_rows($res) > 0

0

精彩评论

暂无评论...
验证码 换一张
取 消