2016-09-29 57 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>"; 
    } 
} 
?> 

如果你執行你可以實現你的解決方案以更好的方式,因此,它避免瞭如果混淆你能理解非常簡單的查詢次數檢查車況你幾年前也看過這個代碼。