if else条件不能正常运行

时间:2016-09-29 06:27:02

标签: php mysql

这是我的代码,我无法运行我的简单条件。我已经使用了所有方法,但它没有用。正如我想要的那样,如果计数可用则显示计数,如果没有,则回显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>";
    }
}
?>

2 个答案:

答案 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并退出该行之后的操作,以便我们可以查看我们必须执行的查询在浏览器中执行,您可以navigatephpmyadmin并将查询放在SQL中,然后点击GO。因此,这是查找查询是否运行的非常简单的方法之一。

缺少Condions:

  1. 文件中缺少会话开始
  2. 缺少打开的循环的关闭大括号
  3. 一般说明: 有时,如果查询没有正确执行,查询的结果也会返回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>";
        }
    }
    ?>
    

    如果您使用执行查询的计数检查条件,您可以更好地获得解决方案,并且您可以非常轻松地理解,以便在几年前查看代码时避免混淆。