如何选择更大的ID

时间:2016-02-02 19:54:44

标签: php html mysql

我正在为网站制作新闻系统。我使用了本教程中的新闻系统: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)。有什么问题?或者是否有另一个更大的代码?

感谢您回复,MARCH

2 个答案:

答案 0 :(得分:4)

Operator precedence!==更紧密,所以你有效地做了

(not($_GET) == 6)

这就是不平等测试!=的原因。

如果你使用了适当的包围,例如

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

然后你会做

not(id == 6) 

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

请注意,您很容易受到sql injection attacks的攻击,并且正在使用过时/已弃用的数据库界面。

答案 1 :(得分:0)

使用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)) ...