我正在为一个网站开发新闻系统。我使用了本教程中的新闻系统: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)) ...