PHP计算行数,然后从静态数中减去

PHP计算行数,然后从静态数中减去,php,count,subtraction,Php,Count,Subtraction,我试图用where子句计算表中的行数。然后我想从一个静态数字中减去拥有的摊位数量——寄宿者使用的摊位数量 我通过一个PHP验证器运行了它,查看了stackoverflow中的任何类似内容,虽然没有错误,但它所做的只是显示数字16。它不会从16中减去行数。显然我做错了 <?php $result = mysqli_query("SELECT count(*) FROM boarders WHERE boardtype LIKE 'Stall%'"); $row = mysqli_fetch_

我试图用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']);
}
?>

尽管你确实输入了你自己的答案,正如我在评论中提到的,你可以这样做,但我提交以下内容是为了显示你发布的代码中的错误

$result = mysqli_query("SELECT
                       ^ missing connection to DB
缺少数据库连接参数$result=mysqli\u query$DB\u connection,请选择

并且是mysqli_查询所必需的 mysqli_uu函数

旁注:用我自己的答案测试你的答案,得到了同样的结果

很明显,您在不向查询传递DB连接时混用了MySQL API

<?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);
这些不同的API不会相互混合。 这里是一个您应该使用的mysqli方法,并将DB连接传递给您的查询

<?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类型,才能获得正确的结果。

@OP您没有连接到数据库$结果=mysqli\u查询$con,选择。。。或者diemysqli_error$con和error reporting您应该从该代码中得到一个错误,它应该抱怨mysqli_查询的第一个参数是错误的类型。确保您启用了错误报告功能。通常您的行@Fred ii-?@user3064125您的代码显示的不是$result=mysqli\u querySELECT,而是$result=mysqli\u query$con,SELECT。告诉我如何连接到您的数据库?我们不知道您使用哪一个变量来连接,但只知道API。mysqli-mysql-PDO?你发布的代码清楚地表明你没有连接到DB。然后用你真正使用的更新你的问题/代码。这充其量只是猜测。@Jayblanch烤面包和苏格兰威士忌;致命连击萨姆Nimoy先生现在已经精神错乱了。啊,所以你可能是在混合mysql_uu和mysqli_uuuAPI,它们不会混合在一起。我的mysqli_uu方法工作得完美无缺。