繁体   English   中英

切换$ _GET变量else语句

[英]switch $_GET variable else statement

我遇到了一个问题。 如果有可能,我可以为$ _GET ['topic']编写else语句吗?

case 'thread-view':
        if(isset($_GET['topic'])){
        $topicid = $_GET['topic'];

        $psql = "SELECT * FROM posts WHERE th_p_link='$topicid' ORDER BY p_id ASC";
        $presult = mysqli_query($db,$psql);
        while($prow = mysqli_fetch_array($presult)){

            $post = $prow['p_post'];
            $author = $prow['p_author'];
            $avatar = $prow['p_avatar'];
            $gm = $prow['p_gm'];
            $date = $prow['p_date'];
            $link = $prow['th_p_link'];

        echo '
        <div class="post_box">
            <div id="post-left">
                <img src="'.$avatar.'" alt="">
                <div id="post-about">
                    <span>'.$author.'</span>
                    <span>Member</span>
                </div>
            </div>
            <div id="post-content">
            <p>'.htmlspecialchars($post, ENT_QUOTES).'</p>
            </div>
            <div id="post-right">
            <i>'.$date.'</i>
            </div>
        </div>
        ';
        }
        }
    break;

    default:
    include 'template/forum_categories.php';

例如,如果我转到URL

forums.php?page = thread-view&topic = testurlpost

它正确显示页面。 虽然我要实现的目标是,如果我去了一些不存在的事物,例如

forums.php?page = thread-view&topic = testurlthatdoesntexist

我希望它重定向到另一个页面,例如错误页面。 我将如何实现呢? 我为$ _GET ['topic']作了else语句,但是当我输入不存在的URL时,该语句不起作用。

您应该添加

   if(!mysqli_num_rows($presult)) {
       header("Location: /error-page.html");
    }

在While语句之前。 因此,您的代码将如下所示:

case 'thread-view':
    if(isset($_GET['topic'])){
    $topicid = $_GET['topic'];

    $psql = "SELECT * FROM posts WHERE th_p_link='$topicid' ORDER BY p_id ASC";
    $presult = mysqli_query($db,$psql);

    if(!mysqli_num_rows($presult)) {
       header("Location: /error-page.html");
    }

    while($prow = mysqli_fetch_array($presult)){

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM