$sql = mysqli_query($db, "SELECT COUNT(ID) from bruker");
if (!$sql) {
while ($row1 = mysqli_fetch_array($sql, MYSQL_NUM)); {
echo $row1;
}
} else {
echo "Funker ikke";
}
我无法让它发挥作用,我得到的只是:“Funker ikke”。
答案 0 :(得分:4)
1)使用错误的if条件。如果查询返回true,则插入if条件
2)使用MYSQL_NUM
的错误回声数据。它返回数值数组
$sql = mysqli_query($db, "SELECT COUNT(ID) from bruker");
if ($sql) {// if true
while ($row1 = mysqli_fetch_array($sql, MYSQL_NUM)) {
echo $row1['0'];//numeric array
}
} else {
echo "Funker ikke";
}
根据以下评论更新
$sql = mysqli_query($db, "SELECT COUNT(ID) from bruker");
if ($sql) {
$row1 = mysqli_fetch_array($sql, MYSQL_NUM);
echo $row1['0']; //numeric array
} else {
echo "Funker ikke";
}
答案 1 :(得分:1)
你的代码有两个错误。
首先,应该是真正的条件只能进入显示循环。但是你把条件设为!$sql
意味着假只能进入循环。因此,您应该将!$sql
更改为$sql
。
另外,While
循环后不应该直接加分号。
您尝试看下面的代码
$sql = mysqli_query($db, "SELECT COUNT(ID) from bruker");
if ($sql) {
while ($row1 = mysqli_fetch_array($sql, MYSQL_NUM))
{
echo $row1[0];
}
}
else {
echo "Funker ikke";
}
答案 2 :(得分:1)
你的代码是正确的,除了sql in if condition之前的not符号。如果你的sql查询错误,那么显示$ row1,否则如果它是正确的那么“funker ikke”被打印出来。恰恰相反。此代码有效:
$sql = mysqli_query($db, "SELECT COUNT(ID) from bruker");
if ($sql) {
// as the query can only return 1 row the while look is unnecessary
//while ($row1 = mysqli_fetch_array($sql, MYSQL_NUM)) {
$row = mysqli_fetch_array($sql, MYSQL_NUM)
echo $row[0];
} else {
echo "Funker ikke";
}
答案 3 :(得分:1)
您的代码中存在一些错误
首先,您不需要使用while循环来处理单个结果,SELECT COUNT()只能返回一行。
对于SELECT查询,第二个mysqli_query()
将返回FALSE或mysqli_result
对象,最好将if条件翻转如下,并专门测试FALSE而不是TRUE。
第三,mysqli_fetch_array($sql, MYSQL_NUM)
返回一个数组,你必须使用数组表示法来获得唯一的返回值,即$row[0]
当任何mysqli_
函数失败时,它会留下一些非常有用的错误信息,因此如果您不希望用户在代码生效时看到它们,请显示该信息或将其发送到应用程序错误文件。< / p>
$sql = mysqli_query($db, "SELECT COUNT(ID) from bruker");
if ($sql === FALSE) {
echo "Funker ikke";
echo mysqli_error($db);
exit;
} else {
$row = mysqli_fetch_array($sql, MYSQL_NUM);
echo $row[0];
}