Php 如果1返回1,则检查列值,否则返回0

Php 如果1返回1,则检查列值,否则返回0,php,sql,Php,Sql,我有一个函数disp,我在其中传递一个表的列名值,以检查该列的值在数据库中是1还是0。如果值为1,则应返回1,否则返回0。这是我尝试创建的函数。但没有达到预期的效果 请告诉我是否有其他方法检查特定行中某列的值为1或0 function disp($x){ @$ncenter=$_SESSION['ncenter']; $sql = "SELECT COUNT('$x') FROM sel WHERE 'numcenter' = '$ncenter' and '$x' = 1";

我有一个函数disp,我在其中传递一个表的列名值,以检查该列的值在数据库中是1还是0。如果值为1,则应返回1,否则返回0。这是我尝试创建的函数。但没有达到预期的效果

请告诉我是否有其他方法检查特定行中某列的值为1或0

 function disp($x){
   @$ncenter=$_SESSION['ncenter'];
  $sql = "SELECT COUNT('$x') FROM sel WHERE 'numcenter' = '$ncenter' and '$x' = 1";
  $sql.=';';
   echo $sql;
 $res = mysql_query($sql);
  if(!$res) die ('Unable to run query:'.mysql_error());
  $row = mysql_fetch_array($res);
  if($row["COUNT('$x')"] > 0){

            return 0;
        }
      else{

            return 1; 
        }
 }

提前感谢您

您可以使用SQL CASE语句:

// SELECT * FROM sel WHERE 'numcenter' = '$ncenter' and '$x' = 1 LIMIT 1

if(empty($row)){
    return 0;
}
else{
    return 1; 
}
SELECT (CASE WHEN `column_name` = '1' THEN 1 ELSE 0 END) AS `column_name_equals_one` FROM `table_name` WHERE `row_identifier_column_name` = 'row_identifier_value';
编辑:我还重写了你的代码,因为它伤害了我的眼睛(我还没有测试过这个)

试试这个

$row = mysql_result($res, 0, 0); 
$numb_of_rows = mysql_num_rows($row);
  if($numb_of_rows > 0){ 

            return 1; 
        } 
      else{ 

            return 0;  
        } 

看起来逻辑是问题所在-他已经切换了1和0。虽然我以前从未见过在数组中传递“COUNT($x)”。一切都是第一次。@Duniyadnd:是的,可能是。但我怎么能用其他方式做到呢?这是特定行中的列名。有什么建议吗???感谢u@deceze当前位置问题是我试着用那种方式来做函数,但并没有得到想要的结果。我的要求是一行中有一列值,如果值为1,则应返回1,否则返回0。在我的示例中,$x是列名。这只是一次尝试。谢谢你,请重新表述你的问题,告诉我们你希望它做什么,而不是告诉我们它没有做你希望它做的。此外,您的代码非常糟糕,它没有任何错误检查,并且非常容易受到SQL注入的攻击。这是
empty
的错误用法。使用
$行
(虽然在这种情况下可能也不起作用)。@deceze你说得对,当我看到SQL语句时,我有一个掌心时刻(它永远不会是空的)。调整了。我并不特别同意“使用不当”的评论,除非你有一个可以改变我想法的理由。我的理由:你写的有趣的文章,书签,稍后会看-谢谢。
$row = mysql_result($res, 0, 0); 
$numb_of_rows = mysql_num_rows($row);
  if($numb_of_rows > 0){ 

            return 1; 
        } 
      else{ 

            return 0;  
        }