0

我有这个数组,

      array (size=6)
      0 => 
      array (size=6)
      'id' => string '2' (length=1)
      'member_ext' => string '1' (length=1)
      'queue_id' => string '1' (length=1)
      'LastUpdate' => string '2013-10-24' (length=10)
      'member_name' => string 'John Smith' (length=10)
      'queue_name' => string 'queue 1' (length=7)
      1 => 
      array (size=6)
      'id' => string '3' (length=1)
      'member_ext' => string '2' (length=1)
      'queue_id' => string '1' (length=1)
      'LastUpdate' => string '2013-10-24' (length=10)
      'member_name' => string 'Jose Jones' (length=10)
      'queue_name' => string 'queue 1' (length=7)
      2 => 
      array (size=6)
      'id' => string '5' (length=1)
      'member_ext' => string '1' (length=1)
      'queue_id' => string '1' (length=1)
      'LastUpdate' => string '2013-10-24' (length=10)
      'member_name' => string 'John Smith' (length=10)
      'queue_name' => string 'queue 1' (length=7)
      3 => 
      array (size=6)
      'id' => string '4' (length=1)
      'member_ext' => string '3' (length=1)
      'queue_id' => string '2' (length=1)
      'LastUpdate' => string '2013-10-24' (length=10)
      'member_name' => string 'Mary Chase' (length=10)
            'queue_name' => string 'queue 2' (length=7)
      4 => 
      array (size=6)
      'id' => string '7' (length=1)
      'member_ext' => string '3' (length=1)
      'queue_id' => string '3' (length=1)
      'LastUpdate' => string '2013-10-24' (length=10)
      'member_name' => string 'Mary Chase' (length=10)
      'queue_name' => string 'queue 3' (length=7)
      5 => 
      array (size=6)
      'id' => string '6' (length=1)
      'member_ext' => string '4' (length=1)
      'queue_id' => string '4' (length=1)
      'LastUpdate' => string '2013-10-24' (length=10)
      'member_name' => string 'Fred Allen' (length=10)
      'queue_name' => string 'queue 4' (length=7)

如何使用 php 将其放入这样的 html 表中?“登录”意味着在阵列中发现他们正在登录到特定队列,“注销”意味着在该特定队列中未找到该技术。

| techs     | queue 1    | queue 2    | queue 3    | queue 4    | queue 5    |
------------------------------------------------------------------------------
|John Smith | logged in  | logged in  | logged out | logged out | logged out |
|Jose Jones | logged in  | logged out | logged out | logged out | logged out |
|Mary Case  | logged out | logged out | logged in  | logged out | logged out |
|Fred Allen | logged out | logged out | logged out | logged in  | logged out |

编辑 - 这是我迄今为止尝试过的。

    <?php
    try {
$username = "admin";
//$password = "TrojanF32";
    $dbh = new PDO('mysql:host=localhost;dbname=test', $username);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "connected<p>";
    } catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
    }


$sth = $dbh->prepare("SELECT DISTINCT queue_name
FROM `log`
WHERE LastUpdate = '2013-10-24'
ORDER BY queue_name ASC
");
$sth->execute();
$sql1 = $sth->fetchAll(PDO::FETCH_ASSOC);



$sth = $dbh->prepare("SELECT * 
FROM `log`
WHERE LastUpdate = '2013-10-24'
ORDER BY queue_name ASC
");
$sth->execute();
$sql2 =$sth->fetchAll(PDO::FETCH_ASSOC);

?><div class="container"><?php

echo "<table border=1>";
echo  "<tr>";
echo "<td>" . "Technician" . "</td>";
foreach($sql1 as $header){
echo "<td>" . $header['queue_name'] . "</td>";  
}
echo "</tr>";

foreach($sql2 as $queue){
    echo "<td>" . $queue['member_name'] . "</td>";
    //echo "<td>";
    foreach($queue as $que){

        if($queue['queue_id'] == '1'){
            echo "<td>" . "logged in" . "</td>";
        }else{
            echo "<td>" . "logged out" . "</td>";
            }
        if($queue['queue_id'] == '2'){
            echo "<td>" . "logged in" . "</td>";
        }else{
            echo "<td>" . "logged out" . "</td>";
            }
        if($queue['queue_id'] == '3'){
            echo "<td>" . "logged in" . "</td>";
        }else{
            echo "<td>" . "logged out" . "</td>";
            }
        if($queue['queue_id'] == '4'){
            echo "<td>" . "logged in" . "</td>";
        }else{
            echo "<td>" . "logged out" . "</td>";
            }
        if($queue['queue_id'] == '5'){
            echo "<td>" . "logged in" . "</td>";
        }else{
            echo "<td>" . "logged out" . "</td>";
        }
        echo "</tr>";
    }
}

echo "<pre>";
var_dump($sql2);
echo "</pre>";




?>
</table>

</div>
4

1 回答 1

1

由于您只需要队列和技术名称,我会更改您的代码,所以看看这是否对您有帮助。

我没有要检查的 php 环境,所以,也许你可以找到一些语法错误。真正的事情是添加第三个查询以获取每个队列中的每个查询,就像我在这里所做的SQLFiddle

那么,让我们看看:

<?php
$sth = $dbh->prepare("SELECT DISTINCT queue_name
                      FROM `log`
                      WHERE LastUpdate = '2013-10-24'
                      ORDER BY queue_name ASC");
$sth->execute();
$sql1 = $sth->fetchAll(PDO::FETCH_ASSOC);

$sth = $dbh->prepare("SELECT DISTINCT member_name
                      FROM `log`
                      WHERE LastUpdate = '2013-10-24'
                      ORDER BY member_name ASC");
$sth->execute();
$sql2 = $sth->fetchAll(PDO::FETCH_ASSOC);

$sth = $dbh->prepare("select ml.member_name, ml.queue_name,
        case ifnull(l.id,-1) when -1 then 'Logging Out' else 'Logging In' end as logstatus
   from (select l1.member_name, l2.queue_name 
           from (select distinct member_name from `log` where lastupdate='2013-10-24') l1,
                (select distinct queue_name from `log` where lastupdate='2013-10-24') l2
         ) ml 
         left join 
         (select * from `log` where LastUpdate='2013-10-24') as l 
         on ( ml.member_name = l.member_name and ml.queue_name = l.queue_name )
 order by ml.member_name, ml.queue_name");
$sth->execute();
$sql3 = $sth->fetchAll(PDO::FETCH_ASSOC);
?>
<div class="container">
<?php
echo "<table border=1>";
echo  "<tr>";
echo "<td>" . "Technician" . "</td>";
foreach($sql1 as $header){
    echo "<td>" . $header['queue_name'] . "</td>";  
}
echo "</tr>";

foreach($sql2 as $names){
    echo "<tr>";
    echo "<td>" . $names['member_name'] . "</td>";
    foreach($sql3 as $queues){
        if ( $names['member_name'] == $queues['member_name'] ){
            echo "<td>" . $queues['logstatus'] . "</td>";
        }
    }
    echo "</tr>";
}
echo "</table>";
?>
</div>

如果您遇到此代码的任何问题,请告诉我。

于 2013-10-27T00:39:23.517 回答