2014-06-06 36 views
-1

这里是我检查id的代码。我想检查sesion id是1或2或3.如果它是1,那么相应的查询从db中获取数据并执行。但是在这里,我有查询是空的。if else检查3条语句的条件

<?php 
if($_SESSION['id'] =='1') 
{ 
$sql ="select a.`id` 'User ID', a.`username` 'Username',MAX(b.login_timestamp) 'Last Logged',count(*) 'Total No. of logins for the Month', count(*)/30 'Avg no. of Logins /day' from users a left join `client_access_log` b on b.unique_id=a.unique_id where b.`username` in('ghfh','sdd') and 
`login_timestamp` between DATE_SUB(DATE_FORMAT(NOW(),'%Y-%m-01'), INTERVAL 1 MONTH) and CAST(DATE_FORMAT(NOW(),'%Y-%m-01') AS DATE) GROUP BY a.id order by count(*) desc"; 
} 
elseif($_SESSION['id'] == '2') 
{ 
$sql ="select a.`id` 'User ID', a.`username` 'Username',MAX(b.login_timestamp) 'Last Logged',count(*) 'Total No. of logins for the Month', count(*)/30 'Avg no. of Logins /day' from users a left join `client_access_log` b on b.unique_id=a.unique_id where b.`username` in('dff') and 
`login_timestamp` between DATE_SUB(DATE_FORMAT(NOW(),'%Y-%m-01'), INTERVAL 1 MONTH) and CAST(DATE_FORMAT(NOW(),'%Y-%m-01') AS DATE) GROUP BY a.id order by count(*) desc"; 
} 
elseif($_SESSION['id'] == '3') 
{ 
$sql ="select a.`id` 'User ID', a.`username` 'Username',MAX(b.login_timestamp) 'Last Logged',count(*) 'Total No. of logins for the Month', count(*)/30 'Avg no. of Logins /day' from users a left join `client_access_log` b on b.unique_id=a.unique_id where b.`username` in('wededf') and 
`login_timestamp` between DATE_SUB(DATE_FORMAT(NOW(),'%Y-%m-01'), INTERVAL 1 MONTH) and CAST(DATE_FORMAT(NOW(),'%Y-%m-01') AS DATE) GROUP BY a.id order by count(*) desc"; 
} 
$query = mysql_query($sql) or die(mysql_error()); 
    if(!$query) 
    { 
     mysql_close(); 
     echo json_encode("There was an error running the query: " . mysql_error()); 
    } 
    elseif(mysql_num_rows($query)==0) 
    { 
     mysql_close(); 
     echo json_encode("No results returned"); 
     exit; 
    } 
    else 
    { 
     $header = false; 
     $output_string = ""; 
     $output_string .= "<table border='2'>\n"; 
     while($row = mysql_fetch_assoc($query)) 
     { 
      if(!$header) 
      { 
       $output_string .= "<tr>\n"; 
       foreach($row as $header => $value) 
       { 
        $output_string .= "<th>{$header}</th>\n"; 
       } 
       $output_string .= "</tr>\n"; 
      } 
      $output_string .= "<tr>\n"; 
      foreach($row as $value) 
      { 
       $output_string .= "<th>{$value}</th>\n"; 
      } 
      $output_string .= "</tr>\n"; 
     } 
     $output_string .= "</table>\n"; 
    } 
    mysql_close(); 
    echo json_encode($output_string); 
     ?> 
+0

你是否先通过'session_start();' –

+0

开始会话尝试添加一些调试信息来验证所有变量是否正确。因此,在ifs之后的ifs和echo $ sql之前,先从'echo $ _SESSION ['id']'开始。这可能会告诉你更多的问题。 – ndsmyter

+0

另外,停止使用'mysql',它已被弃用。使用'mysqli'或'PDO'。 – ElendilTheTall

回答

0

哎由“”从对比

<?php 
session_start(); 
if ($_SESSION['id'] == 1) 
{ 
$sql ="select a.`id` 'User ID', a.`username` 'Username',MAX(b.login_timestamp) 'Last Logged',count(*) 'Total No. of logins for the Month', count(*)/30 'Avg no. of Logins /day' from users a left join `client_access_log` b on b.unique_id=a.unique_id where b.`username` in('ghfh','sdd') and 
`login_timestamp` between DATE_SUB(DATE_FORMAT(NOW(),'%Y-%m-01'), INTERVAL 1 MONTH) and CAST(DATE_FORMAT(NOW(),'%Y-%m-01') AS DATE) GROUP BY a.id order by count(*) desc"; 
} 
elseif ($_SESSION['id'] == 2) 
{ 
$sql ="select a.`id` 'User ID', a.`username` 'Username',MAX(b.login_timestamp) 'Last Logged',count(*) 'Total No. of logins for the Month', count(*)/30 'Avg no. of Logins /day' from users a left join `client_access_log` b on b.unique_id=a.unique_id where b.`username` in('dff') and 
`login_timestamp` between DATE_SUB(DATE_FORMAT(NOW(),'%Y-%m-01'), INTERVAL 1 MONTH) and CAST(DATE_FORMAT(NOW(),'%Y-%m-01') AS DATE) GROUP BY a.id order by count(*) desc"; 
} 
elseif ($_SESSION['id'] == 3) 
{ 
$sql ="select a.`id` 'User ID', a.`username` 'Username',MAX(b.login_timestamp) 'Last Logged',count(*) 'Total No. of logins for the Month', count(*)/30 'Avg no. of Logins /day' from users a left join `client_access_log` b on b.unique_id=a.unique_id where b.`username` in('wededf') and 
`login_timestamp` between DATE_SUB(DATE_FORMAT(NOW(),'%Y-%m-01'), INTERVAL 1 MONTH) and CAST(DATE_FORMAT(NOW(),'%Y-%m-01') AS DATE) GROUP BY a.id order by count(*) desc"; 
} 

去除努力尝试让关键字之间的一些空间。