PHP& MySQL动态页面显示问题

时间:2010-08-30 02:50:02

标签: php mysql

假设我有一个帖子可以在页面post.php?pid=60找到,但是如果用户将网址更改为post.php?pid=95,则会显示页面,所有奇怪的是 有一种方法,我可以让他们重定向到另一个页面,说帖子不存在或什么?如果是这样,我该怎么做?这是处理现有页面的最佳方法吗?如果不是首选的那个?

我正在使用PHP& MySQL如果有帮助的话。

3 个答案:

答案 0 :(得分:2)

通过给定$_GET["pid"]

从DB获取帖子

如果发现帖子(即存在pid)

然后正常显示

否则包括错误页面内容/使用标题以重定向到错误页面等。

希望逻辑可以帮助你

答案 1 :(得分:1)

好吧,您可以尝试从数据库中选择帖子,如果查询没有带来任何内容,您可以重定向到显示所有帖子的页面。对我来说比展示“找不到页面”消息(在这种情况下)更有意义。这个想法是这样的:

$result = query('SELECT * FROM posts WHERE id=60');
if( ! $result)
    redir('all_posts.php');

这只是为了描绘问题。我假设查询函数返回falsenull,如果没有返回行,则返回一个空数组,而不是通常的mysql资源。

只需记住添加exit;(可能在重定向功能中),不要让页面呈现出奇怪的效果。

答案 2 :(得分:0)

您应该检查数据库中是否有数据返回,如果没有,则显示错误消息。

你有任何支持代码吗?这是一个模拟:

$pid = isset($_GET['pid'])?(int)$_GET['pid']:0; // use the ternary operator to set a default value

if (!empty($pid) {
    $res = mysql_query("SELECT columns FROM table_name WHERE pid = $pid") or trigger_error('MySQL Returned: ' . mysql_error());
    $rows = mysql_num_rows($res);
    if ($rows > 0) {
         // display the data
    }else {
         // There is no data so display the no-data page
    }
}

它可能不适合你,因为你必须调整它,但应该给你一个粗略的想法。