【问题标题】:How to merge rows having same name into one where data taken using two foreach如何将具有相同名称的行合并为一个使用两个 foreach 获取数据的行
【发布时间】:2019-03-12 18:17:40
【问题描述】:

我想将具有相同名称的行合并到下表中的一行,并且在合并时离开的计数应该显示它的总和,我已经使用了两个 forach 来列出表,因为它采用了两种数据。尝试过的东西没有work.sending 作为电子邮件的消息正文尝试了一些方法,但它不起作用

姓名 离开 Emp1 0 Emp2 0.5 Emp3 1 Emp2 1 Emp4 4 Emp5 1 Emp3 1

代码:

$message2="<html>
               <body>

            <table ;> 
                <thead>
                    <tr>
                        <th>Name</th>
                        <th>Leave</th>

                    </tr>    
                </thead>
                <tbody>";


                        foreach($leave2 as $val) {

                           if($val->hourcount>2)
                           {
                            $newcount=.5;
                           }
                           else
                           {
                            $newcount=0;
                           }
                           if($val->hourcount>=6)
                           {
                            $newcount=1;
                           }
                        $message2 .="<tr>
                            <td>" . $val->resource ."</td>
                            <td>".$newcount."</td>

                        </tr>";

                     } 

                    foreach($leave as $value) { 
 $message2 .="<tr>
                            <td>" . $value->resource ."</td>
                            <td>".$value->Days."</td>

                        </tr>";
                     } 
if (count($value->resource) > 0) {

    $html = '';

    foreach($val->resource as $key => $val) {
       $html .= "<tr>\r\n";    

       $html .= "<td rowspan='".count($val)."'>{$key}</td>\r\n";

       foreach($val as $key => $td) {
           if($key>0) {
              $html.= "<tr>";
           }
           $html .= "<td>{$td}</td>\r\n";

           $html .= "</tr>\r\n";
       }        
    }
}


                 "</tbody>
            </table>

            <p>Leave report</p> 
            <hr />     
        </body>
        </html>";

【问题讨论】:

    标签: php html mysql codeigniter


    【解决方案1】:

    你可以试试这样的

    1 ) 创建一个包含员工姓名及其总休假数的数组

    2 ) 从该数组中显示所需的表格格式

    <?php
        $sql = "SELECT * FROM table_name";
        $result = $db->query($sql);
         if ($result->num_rows > 0) { 
              while ($row = $result->fetch_assoc()) {
    
                $name = $row['Name'];
                $level = $row['Level'];
                if(isset($leaveArr[$name])){
                    $leaveArr[$name] = $leaveArr[$name]+ $level;
                }else{
                    $leaveArr[$name] = $level;
                }
    
            }  } 
        if(count($leaveArr)>0){
            echo "<table>";
            echo "<tr><td>Name</td><td>Leave</td></tr>";
            foreach ($leaveArr as $key => $value) {
                echo "<tr>";
                echo "<td>" . $key . "</td>";
                echo "<td>" . $value . "</td>";
                echo "</tr>";
            }
            echo "</table>";
        }
    

    【讨论】:

    • 你用的leavearray是什么?
    猜你喜欢
    • 1970-01-01
    • 2023-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-09
    • 2015-06-28
    相关资源
    最近更新 更多