PHP Count行然后从静态数减去

时间:2015-02-27 17:58:50

标签: php count subtraction

我试图用where子句计算表中的行数。然后我想从一个静态数字中减去(所拥有的摊位数量 - 寄宿生使用的摊位数量)。

我通过PHP验证器运行了这个,通过stackoverflow查看了类似的东西,虽然没有错误但它只显示数字16.它不会从16减去行数。显然我正在做错了!

<?php
$result = mysqli_query("SELECT count(*) FROM boarders WHERE boardtype LIKE 'Stall%'");
$row = mysqli_fetch_row($result);
$num = $row[0];
echo (16 - $num);
?>

我得到了我想要的工作。不,它不是mysqli,需要更新,但我还没有学到它,并希望(希望)在某个时候。我只是为自己编写代码,而不是重要的东西。以下功能正是我想要的,但现在这么好。

<?php
$query = "SELECT COUNT(*) AS stallboarders FROM boarders WHERE boardtype LIKE 'Stall%'"; 
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)){

echo (16-$row['stallboarders']);
}
?>

2 个答案:

答案 0 :(得分:0)

<?php
$query = "SELECT COUNT(*) AS stallboarders FROM boarders WHERE boardtype LIKE 'Stall%'"; 
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)){

echo (16-$row['stallboarders']);
}
?>

答案 1 :(得分:0)

即使你确实按照我在评论中提到的那样输入了你自己的答案,我也会提交以下内容,以便显示你发布的代码中的错误。

$result = mysqli_query("SELECT
                       ^ missing connection to DB

缺少数据库连接参数$result = mysqli_query($db_connection,"SELECT

并且需要mysqli_query() http://php.net/manual/en/mysqli.query.php
mysqli_函数)。

旁注: 使用我自己的方式测试您的答案,产生相同的结果。

很明显,您在混合使用MySQL API时没有将数据库连接传递给您的查询。

  • 这些不同的API不会相互混合。

这是一个你应该使用的mysqli方法,并将数据库连接传递给你的查询。

<?php 

$DB_HOST = 'xxx';
$DB_USER = 'xxx';
$DB_PASS = 'xxx';
$DB_NAME = 'xxx';

$Link = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if($Link->connect_errno > 0) {
  die('Connection failed [' . $Link->connect_error . ']');
}

$result = mysqli_query($Link,"SELECT count(*) 
          FROM boarders WHERE boardtype LIKE 'Stall%'");
$row = mysqli_fetch_row($result);

// will return 14 with 2 rows in table
$num = $row[0]; // id is int

// debug test
// will return 16
// $num = $row[1]; // boardtype is varchar

// will echo 14 with 2 rows in table
echo (16 - $num);

$row[0]应为int类型,以便获得正确的结果。