那么如何选择一个更大的id


How to select an id bigger then

我正在为一个网站开发新闻系统。我使用了本教程中的新闻系统:http://pixelcode.co.uk/tutorials/php/mysql-news-system/

因此,为了显示新闻,我使用以下代码行:

if(!$_GET['id'])
        {   
            $query = mysql_query("SELECT * FROM news ORDER BY id DESC");
            while($output = mysql_fetch_assoc($query))
            {
                    echo '<div id="nieuws">';
                    echo '<a href="?id='.$output['id'].'" id="link">';                      
                    echo '<h1>'.$output['title'].'</h1>';
                    echo '<span id="date">'.date('d-m-y', $output['date']).'</span><br / >';
                    echo $output['shortnews'].'<br / >';
                    echo '</a>';
                    echo '</div>';      
            }
        }
        else
        {
            $id = $_GET['id']; 
            $query = mysql_query("SELECT * FROM news WHERE id='$id'");
            $output = mysql_fetch_assoc($query);                
    ?>      
            <form method="post" action="?id=<? echo $output['id']; ?>"> 
            <h1><? echo $output['title']; ?></h1>
            <? echo '<span id="date">'.date('d-m-y', $output['date']).'</span><br / >' ?>
            <? echo $output['news']; ?>
            </form>
    <?php } ?>

我可以做:if(!$_GET['id'] = 6)但我做不到:if(!$_GET['id'] > 6)。怎么了?还是有另一个比 id 更大的代码?

感谢您的回复,三月

运算符优先级:!绑定比 == 更紧密,因此您实际上是在执行

(not($_GET) == 6)

这就是为什么不平等测试有!=

如果您使用了正确的括号,例如

(!($_GET['id'] == 6)) 

那你就做

not(id == 6) 

并获得预期的结果,因为这在逻辑/功能上等同于id != 6

请注意,您容易受到 sql 注入攻击,并且使用的是过时/已弃用的数据库接口。

使用 isset()

if (isset($_GET['id'])) ...

或者,我喜欢做什么:

// Get all possible arguments:
$id  = @$_GET['id'];   // The @ prevents an error message
$foo = @$_GET['foo'];  // foo means ...  (explain the args)
...
// Later, as needed:
if (isset($id)) ...