我试图用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']);
}
?>
答案 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时没有将数据库连接传递给您的查询。
这是一个你应该使用的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
类型,以便获得正确的结果。