自定义论坛功能没有返回正确的ID?

时间:2013-09-04 04:32:57

标签: php mysql function url forum

我决定使用一年前我为一个我正在制作的网站制作的论坛,一切正常(在我的修订之后),除了在创建主题之后,它不会带你到新帖子。以下是应该实现的功能:

function new_post($name) {
    $sqlpost = "SELECT `id` FROM `forum_question` WHERE `name`='$name' ORDER BY `datetime`     ASC LIMIT 1";
    $mysqlpost = mysql_query($sqlpost);
    return $mysqlpost;
}

以下是我的应用方式:<a href="view_topic.php?id=<?php echo new_post($name); ?>">View Post</a>(请记住,$name是在文档的前面定义的)

这是创建帖子后我需要访问的网址:http://localhost/Nu-Bio/view_topic.php?id=Resource%20id%20#10

感谢阅读,希望你能提供帮助。另外:我知道我应该使用MySQLi。一旦我完成了我想完成的下几件事,我将会更新〜

4 个答案:

答案 0 :(得分:0)

自从我使用mysql_query()以来已经很长时间了,但我相信你正在返回一个数组。试试这个。

return $mysqlpost['id'];

答案 1 :(得分:0)

返回result_query()的值

对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他返回结果集的语句,mysql_query()会在成功时返回资源,或者在出错时返回FALSE。

<?php

 function new_post($name) {
  $id = 0;
  $sqlpost = "SELECT id FROM forum_question WHERE name='".$name."' ORDER BY datetime ASC LIMIT 1";
  $mysqlpost = mysql_query($sqlpost);
  if (!$mysqlpost) {
     die('Invalid query: ' . mysql_error());
  }
  else
  {
     $array = mysql_fetch_assoc($mysqlpost);

      $id = $array['id'];
  }
  return $id;
 }

?>

Reference

答案 2 :(得分:0)

试试这个

function new_post($name) {
$sqlpost = "SELECT `id` FROM `forum_question` WHERE `name`='$name' ORDER BY `datetime`     ASC LIMIT 1";
$mysqlpost = mysql_query($sqlpost);
return $mysqlpost;
}

然后检查

echo '<pre>';print_r($mysqlpost);echo '</pre>';

或者你也可以这样做

function new_post($name) {
    $sqlpost = "SELECT `id` FROM `forum_question` WHERE `name`='$name' ORDER BY `datetime`     ASC LIMIT 1";
    $mysqlpost = mysql_query($sqlpost);
    return $mysqlpost['id'];
    }

答案 3 :(得分:0)

你应该添加mysql_fetch_assoc, 你可以试试这个:

$mysqlpost = mysql_fetch_assoc(mysql_query($sqlpost));
return $mysqlpost['id'];`