这是我的代码,我无法运行我的简单条件。我已经使用了所有方法,但它没有用。正如我想要的那样,如果计数可用则显示计数,如果没有,则回显0。我知道这很简单,但我坚持下去。
<?php
$hostname = "localhost";
$username = "root";
$password = "";
$db = "usman";
$dbh = new PDO("mysql:host=$hostname;dbname=$db", $username, $password);
$result = $dbh->query(
"SELECT COUNT(*) as cnt
FROM ams
where empid= {$_SESSION['sess_user_id']}
GROUP BY leavetype
HAVING leavetype = 'Annual'"
);
if (!$result) {
echo "<td>";
echo 0;
echo "</td>";
} else {
foreach ($result as $row) {
echo "<td>" . $row['cnt'] . "</td>";
echo "<br>";
}
}
?>
答案 0 :(得分:1)
<?php
session_start();
$hostname = "localhost";
$username = "root";
$password = "";
$db = "usman";
$dbh = new PDO("mysql:host=$hostname;dbname=$db", $username, $password);
$result = $dbh->query("SELECT COUNT(*) as cnt FROM ams where empid= {$_SESSION['sess_user_id']} GROUP BY leavetype HAVING leavetype = 'Annual'");
if (!$result) {
echo "<td>" . 0 . "</td>";
} else {
foreach($result as $row) {
echo "<td>" . $row['cnt'] . "</td>";
echo "<br>";
}
}
?>
在if-else循环结束时,您似乎错过了}
。此外,如果您使用的是$_SESSION
超全局变量,则需要先调用session_start()
。
答案 1 :(得分:0)
注意:在使用
Query
中的if else条件时,建议echo
使用Query
并退出该行之后的操作,以便我们可以查看我们必须执行的查询在浏览器中执行,您可以navigate
到phpmyadmin
并将查询放在SQL
中,然后点击GO
。因此,这是查找查询是否运行的非常简单的方法之一。
缺少Condions:
一般说明:
有时,如果查询没有正确执行,查询的结果也会返回FALSE
,因此建议在执行查询后获取行数并在此之后执行操作。
您的正确代码如下:
<?php
session_start();
$hostname = "localhost";
$username = "root";
$password = "";
$db = "usman";
$dbh = new PDO("mysql:host=$hostname;dbname=$db", $username, $password);
$result = $dbh->query("SELECT COUNT(*) as cnt FROM ams where empid='".$_SESSION['sess_user_id']."' GROUP BY leavetype HAVING leavetype = 'Annual'");
$count = $result->num_rows;
if($count==0)
{
echo "<td>" . 0 . "</td>";
}
else {
foreach($result as $row) {
echo "<td>" . $row['cnt'] . "</td>";
echo "<br>";
}
}
?>
如果您使用执行查询的计数检查条件,您可以更好地获得解决方案,并且您可以非常轻松地理解,以便在几年前查看代码时避免混淆。