2016-09-28 21 views
0

これは基本的なことですが、必要なデータを取得できません。以下はコードですが、ログインしているユーザID(empid = 933)を持つDBから不在のカウントを取得すると、それは私に必要なレコードを与えています。私は$ empidとしてすでに作成されているログインしたIDユーザーのセッションIDで同じデータを取得したいと思います。私は以下のクエリでこのセッション値を渡すことができません。いずれかの人が助けてくれます、私は感謝します...あなたに前もって感謝します。foreachループでセッション値を渡す方法php

<?php 
$hostname="localhost"; 
$username="root"; 
$password=""; 
$db = "usman"; 
$dbh = new PDO("mysql:host=$hostname;dbname=$db", $username, $password); 

foreach($dbh->query('SELECT COUNT(*) FROM ams where empid= 933 GROUP BY leavetype HAVING leavetype = "Absent" 
') as $Absent) 
{ 
echo "<td>" . $Absent['COUNT(*)'] . "</td>"; 
echo "<br>"; 
} 
?> 
+0

したがって、セッション変数でデータが呼び出されるのは、つまり、' $ _SESSION ['empid'] 'のようなものです。私たちの命を耐え忍びにしてくれる手がかりを与えてください – RiggsFolly

+0

'' empid = '。$ empid'のところでSELECT COUNT(*)FROM ams GROUP BY leavetype HAVING leavetype = "Absent" ' –

+0

PHPはセッションデータを '$ _SESSION'という名前のグローバル変数で扱います。それは配列です。この配列にあるものを見たい場合は、 'print_r($ _ SESSION)'を使ってセッションに含まれる項目を見ることができます。次に、どのキーが "empid"に関連付けられているかを知ることができ、それを変数に格納して、それをクエリに渡します。 –

答えて

3
<?php 
// first you must start the session to gain access to the session object 
session_start(); 

$hostname="localhost"; 
$username="root"; 
$password=""; 
$db = "usman"; 

$dbh = new PDO("mysql:host=$hostname;dbname=$db", $username, $password); 

foreach($dbh->query("SELECT COUNT(*) as cnt 
        FROM ams 
        where empid= {$_SESSION['sess_user_id']} 
        GROUP BY leavetype 
        HAVING leavetype = 'Absent'") as $Absent) 
{ 
    echo "<td>" . $Absent['cnt'] . "</td>";  
    echo "<br>"; 
} 
?> 

そのも簡単には列が

を名前として、あなたが$Absent['cnt']を使用することができます。また、私はあなたがそうであるように

GROUP BY leavetype 
HAVING leavetype = 'Absent 

ない理由を見ないCOUNT(*)別名COUNT(*) as cntを与えるために私が想定しているものを使うと、ams行を見つけるための一意のIDです。

+0

それは動作していません –

+0

警告:このエラーでforeach()に指定された引数が無効です –

+0

はそのままコードをコピーしますが、うまく動作しません –

0

`

<?php 
try{ 
    $db = new PDO("dbtype:host=yourhost;dbname=yourdbname;charset=utf8","username","password"); 
    $empid = $_SESSION['sess_user_id']; 
    $query=$db->prepare("SELECT COUNT(*) as counts FROM ams where empid= ? GROUP BY leavetype HAVING leavetype = 'Absent'"); 
    $query->excute(array($empid)); 
    while($row=$query->fetch(PDO::FETCH_OBJ)) { 
    echo "<td>".$row->counts."</td>"; 
    echo "<br>"; 
    } 
}catch(PDOException $e){ 
echo "Error: ".$e; 
} 
?> 
関連する問題