我正在一个页面上,用户发布他们的投注选择。在MySQL中,我有表格下注(id,事件,选择,赔率,赌注,分析,状态,利润)。
我想检查MySQL中'status'是否为空,但if()
语句不起作用。如果它是空的,它应该输出用户的所有赌注。发布的代码是for循环。
那么if()
声明有什么问题?还有更好的方法吗?
$result = queryMysql("SELECT * FROM bets WHERE user='$user'");
$row = mysqli_fetch_array($result);
if ('' !== $row['status']) {
echo "Status: " . $status . "</div>" .
"Published by: " . $user . "<br>" .
"PICK: " . $pick . "<br>" .
"Odds: " . $odds . "<br>" .
"Stake: " . $stake . "<br>" .
nl2br($analysis) ;
}
答案 0 :(得分:3)
使用mysqli_num_rows()
。如果它大于0,那么我们可以说包含结果的查询,以便我们可以进一步继续。
$result = queryMysql("SELECT * FROM bets WHERE user='$user'");
if(mysqli_num_rows($result) > 0)
{
$row = mysqli_fetch_array($result);
if ($row['status'] != "") {
echo "Status: " . $status . "</div>" .
"Published by: " . $user . "<br>" .
"PICK: " . $pick . "<br>" .
"Odds: " . $odds . "<br>" .
"Stake: " . $stake . "<br>" .
nl2br($analysis) ;
}
}
对于状态检查,您可以使用以下任何一种方法
if ($row['status'] != "") { }
OR
if (!empty($row['status'])) { }
答案 1 :(得分:2)
如果为空,则应输出用户的所有赌注。发布的代码是for循环。
由于您正在检查它是否为空,因此您的if
声明应该是相反的:
if ($row['status'] == '') {
或者,您可以使用mysqli_num_rows()
获取行数:
返回结果集中的行数。
$result = queryMysql("SELECT * FROM bets WHERE user='$user'");
if (mysqli_num_rows($result) > 0) {
$row = mysqli_fetch_array($result);
echo "Status: " . $status . "</div>" .
"Published by: " . $user . "<br>" .
"PICK: " . $pick . "<br>" .
"Odds: " . $odds . "<br>" .
"Stake: " . $stake . "<br>" .
nl2br($analysis) ;
}
此外,还没有这样的函数queryMysql()
:
$result = queryMysql("SELECT * FROM bets WHERE user='$user'");
应该是mysqli_query()
。对于mysqli_query()
,需要连接参数。
$result = mysqli_query($conn, "SELECT * FROM bets WHERE user='$user'");
答案 2 :(得分:2)
您正在使用identical
比较,这会检查type
&amp; value
两者。 ===
或!==
,因为这涉及比较类型和价值。
而是尝试 -
if (!empty($row['status'])) { // assuming status would hold only strings (not false/0 etc)
或者
if ($row['status'] != '') {