1

我正在从 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'];
} 
?>

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

4

6 回答 6

2

在上面添加WHERE子句

SELECT * 
FROM clients 
WHERE hidden = 0
ORDER BY name

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

于 2012-10-07T23:42:12.867 回答
1
$result = mysql_query("SELECT * FROM clients WHERE hidden = 0 ORDER BY name");

这可能是最简单的方法。

于 2012-10-07T23:42:45.577 回答
0

有2个选项:

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'];
}
于 2012-10-07T23:42:35.547 回答
0

您当前的查询

SELECT * FROM clients ORDER BY name

检索表中的每一行。如果要隐藏(不检索)列值所在的行,hidden1只需添加一个 WHERE 子句来检查hidden不等于1.

SELECT * FROM clients WHERE hidden = 0 ORDER BY name
于 2012-10-07T23:43:03.133 回答
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'];
} 
?>
于 2012-10-07T23:43:50.853 回答
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

于 2012-10-07T23:52:19.583 回答