我正在尝试显示带有条件的SQL表中的行数。
表viaturas有4条记录。我想计算estado列中有多少行匹配"Inoperacional">,在本例中为3条记录。
我在viaturas.php中创建了一个函数ViaturasNo((:
<?php
function ViaturasInop()
{
require_once "config.php";
$query = "SELECT * FROM `viaturas` WHERE `estado` LIKE 'Inoperacional'";
if ($result=mysqli_query($link,$query))
$rowcount=mysqli_num_rows($result);
return $rowcount;
mysqli_close($link);
}
echo ViaturasInop();
?>
如果运行viaturas.php,它将正确返回3。
在页面中,我希望结果显示在HTML正文中index.php我有以下内容来调用函数:
<div class="h5 mb-0 font-weight-bold text-gray-800"><?php echo ViaturasInop(); ?></div>
然而,作为回报,我得到了以下错误:
注意:未定义的变量:第8行上的C:\php\viatura.php中的链接
警告:mysqli_query((要求参数1为mysqli,在第8行的C:\[…]\php\viatura.php中为null
注意:未定义的变量:第11行上C:\php\viatura.php中的rowcount
我尝试过其他选择,但总是会遇到同样的错误。
您应该never在函数中使用require_sonce来获得mysqli连接。
首先,顾名思义,它只能工作一次。
此外,即使您克服了这一限制,在每次函数调用中创建一个新连接也会破坏数据库服务器。
相反,您必须在脚本顶部调用require_once "config.php";
一次,然后使用$link
变量来获得mysqli连接。为了在函数中建立连接,您必须将其作为函数参数传递:
<?php
function ViaturasInop($link)
{
$query = "SELECT count(*) FROM `viaturas` WHERE `estado` = 'Inoperacional'";
$result=mysqli_query($link,$query);
$row = mysqli_fetch_row($result);
return $row[0];
}
现在,在索引文件的顶部添加
require_once "config.php";
然后放入
echo ViaturasInop($link);
只要你需要号码