SQL查询:根据列值隐藏项目?

时间:2012-10-07 23:39:30

标签: php sql hidden

我从MySQL数据库中的表中提取一些数据。在这个表中是一个名为“hidden”的列,默认情况下它被设置为0,但是当一个项需要被隐藏时,它将被设置为1.所以我需要一个我可以使用的代码,它将隐藏所有行“隐藏”列设置为1。

让我们说我的代码很简单:

<?php
$result = mysql_query("SELECT * FROM clients ORDER BY name") 
or die(mysql_error());  
while($row = mysql_fetch_array( $result )) {
echo $row['name'];
} 
?>

我可以添加一个简单的代码吗?

6 个答案:

答案 0 :(得分:2)

在其上添加WHERE条款

SELECT * 
FROM clients 
WHERE hidden = 0
ORDER BY name

上面的查询只会显示未隐藏的项目。

答案 1 :(得分:1)

$result = mysql_query("SELECT * FROM clients WHERE hidden = 0 ORDER BY name");

这可能是最简单的方法。

答案 2 :(得分:0)

有两个选项:

1)如果您总是希望隐藏这些行,那么您甚至不必通过更改查询来加载它们。

SELECT * FROM clients WHERE hidden=0 ORDER BY name;

2)您可以在while循环中检查该值。

while($row = mysql_fetch_array( $result )) {
   if($row['hidden']==0) echo $row['name'];
}

答案 3 :(得分:0)

您当前的查询

SELECT * FROM clients ORDER BY name

检索表中的每一行。如果要隐藏(不检索)hidden列的值为1的行,则只需添加WHERE子句以检查hidden是否不等于1

SELECT * FROM clients WHERE hidden = 0 ORDER BY name

答案 4 :(得分:0)

    <?php
$result = mysql_query("SELECT * FROM clients WHERE hidden=0 ORDER BY name") 
or die(mysql_error());  
while($row = mysql_fetch_array( $result )) {
echo $row['name'];
} 
?>

答案 5 :(得分:0)

$result = mysql_query("SELECT * FROM clients WHERE hidden=0 ORDER BY name");

将仅返回未隐藏的行。

此外,如果这是您要编写的新程序,请使用MySqli或PDO而不是mysql_ *函数,因为它们已被弃用。请参阅 - http://us.php.net/mysqlihttp://us.php.net/pdo