2016-09-29 71 views
-1

这是我的代码,我无法运行我的简单条件。我已经使用了所有的方法,但它不起作用。正如我想如果计数可用,然后显示计数,如果没有,然后回声0。我知道这很简单,但我坚持它。if else condition is notly properlly

<?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

where'session_start()'? – devpro

+2

你错过了其他的'}'。你只有for循环的'}' –

回答

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()

0

注意:在使用如果从Query其他条件,建议echoQuery和行后退出运营,使我们可以看到,我们在浏览器中执行查询,您可以navigatephpmyadmin并将查询放在SQL并点击GO。因此,这是查询查询是否运行的非常简单的方法之一。

缺少Condions:

  1. 会话开始在文件
  2. 的循环关闭括号打开缺失丢失

一般说明: 有时如果查询未正确执行,查询结果将返回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>"; 
    } 
} 
?> 

如果你执行你可以实现你的解决方案以更好的方式,因此,它避免了如果混淆你能理解非常简单的查询次数检查车况你几年前也看过这个代码。