繁体   English   中英

如何使用php和codeigniter隐藏检索到的数据值的重复部分

[英]How to hide repeating part of the retrieved data values using php and codeigniter

由于这个MySQL语句,我已经获得了下表

SELECT * FROM expenses, income 
WHERE expenses.projectname=income.projectname 
AND expenses.task=income.task

在此输入图像描述 这些是我的项目表中的字段

在此输入图像描述

这些是我的任务表的字段 在此输入图像描述

在此表中,一个项目有许多任务。 因此项目,客户,项目开始和结束日期列无意义地重复。 如何才能为所有任务显示一次? 如何在这里应用PHP隐藏逻辑? 下图显示了我需要实现的目标。 通过MySQL查询检索数据。 但是我怎样才能隐藏重复的不必要的值 在此输入图像描述 这是CodeIgniter视图页面

<table class="table table-lg">
<thead >
    <tr class="filters">

       <th><input type="text" class="form-control" placeholder="Project" disabled></th>
        <th><input type="text" class="form-control" placeholder="Employee" disabled></th>
        <th><input type="text" class="form-control" placeholder="Task" disabled></th>
        <th><input type="text" class="form-control" placeholder="Expense" disabled></th>
        <th><input type="text" class="form-control" placeholder="Amount" disabled></th>
        <th><input type="text" class="form-control" placeholder="Paid/Not" disabled></th>
        <th><input type="text" class="form-control" placeholder="Client" disabled></th>
        <th><input type="text" class="form-control" placeholder="Cost" disabled></th>
        <th><input type="text" class="form-control" placeholder="Income " disabled></th>
        <th><input type="text" class="form-control" placeholder="Date" disabled></th>

    </tr>
</thead>
<tbody>
<?php
if(isset($view_data1) && is_array($view_data1) && count($view_data1)): $i=1;
foreach ($view_data1 as $key => $data) { 
?>

<tr <?php if($i%2==0){echo 'class="even"';}else{echo'class="odd"';}?>>

    <td><?php echo $data['projectname']; ?></td> 
    <td><?php echo $data['employee']; ?></td> 
    <td><?php echo $data['task']; ?></td> 
    <td><?php echo $data['ExpenseName']; ?></td> 
    <td><?php echo $data['ExpenseAmount']; ?></td>
    <td><?php echo $data['pn']; ?></td>  
   <td><?php echo $data['cname']; ?></td>
   <td><?php echo $data['taskcost']; ?></td> 
   <td><?php echo $data['amount']; ?></td> 
   <td><?php echo $data['datetimepicker_mask']; ?></td> 
</tr>
<?php
    $i++;
      }
    else:
?>
<tr>
    <td colspan="7" align="center" >No Records Found..</td>
</tr>
<?php
    endif;
?>
</tbody>                
</table>

我没有测试这段代码,但想法是记住最后一个密钥(在这种情况下为projectname和employee),然后将它与当前密钥进行比较。

示例代码中的字段与您的Word文档示例表不匹配,因此我只使用了您的代码示例。

    <tbody>

        <?php
        if (isset($view_data1) && is_array($view_data1) && count($view_data1)) {

            $i = 1;
            $last_key = '';

            foreach ($view_data1 as $key => $data) {

                $stripe = 'odd';
                if ($i % 2 == 0) {
                     $stripe = 'even';
                }
                echo "<tr class='$stripe'>";
                $i++;

                $current_key = $data['projectname'] . $data['employee'];

                if ($current_key !== $last_key) {

                    echo "<td>" . $data['projectname'] . "</td>";
                    echo "<td>" . $data['employee'] . "</td>";
                } else {

                    echo "<td colspan='2'></td>";
                }

                $last_key = $current_key;
                ?>

            <td><?php echo $data['task']; ?></td>
            <td><?php echo $data['ExpenseName']; ?></td>
            <td><?php echo $data['ExpenseAmount']; ?></td>
            <td><?php echo $data['pn']; ?></td>
            <td><?php echo $data['cname']; ?></td>
            <td><?php echo $data['taskcost']; ?></td>
            <td><?php echo $data['amount']; ?></td>
            <td><?php echo $data['datetimepicker_mask']; ?></td>
        </tr>
        <?php
    }
} else {
    ?>
    <tr><td colspan="10" align="center" >No Records Found..</td></tr>
    <?php
}
?>

</tbody>
</table>

当时不要选择两张桌子。 加入条件。

SELECT expenses.*,income.*,expenses.id as p_id FROM expenses
join income ON expenses.task=income.task AND expenses.projectname=income.projectname

改变你对foreach部分的看法

<table class="table table-lg">
<thead >
    <tr class="filters">

       <th ><input type="text" class="form-control" placeholder="Project" disabled></th>
        <th ><input type="text" class="form-control" placeholder="Employee" disabled></th>
        <th ><input type="text" class="form-control" placeholder="Task" disabled></th>
        <th ><input type="text" class="form-control" placeholder="Expense" disabled></th>
        <th ><input type="text" class="form-control" placeholder="Amount" disabled></th>
        <th ><input type="text" class="form-control" placeholder="Paid/Not" disabled></th>
        <th ><input type="text" class="form-control" placeholder="Client" disabled></th>
        <th ><input type="text" class="form-control" placeholder="Cost" disabled></th>
        <th ><input type="text" class="form-control" placeholder="Income " disabled></th>
        <th ><input type="text" class="form-control" placeholder="Date" disabled></th>
    </tr>
</thead>
<tbody>
<?php
if(isset($view_data1) && is_array($view_data1) && count($view_data1)): $i=1;
$is_exists=array();
foreach ($view_data1 as $key => $data) { 
?>

<tr <?php if($i%2==0){echo 'class="even"';}else{echo'class="odd"';}?>>
<?php
    if(!in_array($data['p_id'], $is_exists)){
        $is_exists[]=$data['p_id'];
    ?>
        <td><?php echo $data['projectname']; ?></td> 
        <td><?php echo $data['employee']; ?></td> 
        <td><?php echo $data['task']; ?></td> 
        <td><?php echo $data['ExpenseName']; ?></td> 
    <?php
    }else{
     echo "<td rowspan='4'></td>";
    }
    ?>

   <td><?php echo $data['ExpenseAmount']; ?></td>
   <td><?php echo $data['pn']; ?></td>  
   <td><?php echo $data['cname']; ?></td>
   <td><?php echo $data['taskcost']; ?></td> 
   <td><?php echo $data['amount']; ?></td> 
   <td><?php echo $data['datetimepicker_mask']; ?></td> 
</tr>
<?php
    $i++;
      }
    else:
?>
<tr>
    <td colspan="7" align="center" >No Records Found..</td>
</tr>
<?php
    endif;
?>

</tbody>                
</table>

不要合并这样的表。 在模型中使用连接查询,并通过控制器在视图中调用它

public function getExpenses(){
     $this->db->select("addexpense.exp_date, addexpense.exp_amount, addexpense.exp_note, addexpense.exp_created, addcategory.category_name");
     $this->db->from('addexpense');
     $this->db->join('addcategory', 'addcategory.category_id = addexpense.category_id');
     $query = $this->db->get();
     return $query->result();
}

如果我理解你,你可以试试以下。

<?php

$arrData = [
    [
        "projectname" => "First Project",
        "employee" => "First Client",
        "projectstart" => "12-12-2017",
        "projectend" => "12-12-2019",
        "task" => "Task 1",
        "description" => "Description 1",
        "commission" => "1000",
        "taststart" => "01-01-2018",
        "taskend" => "10-01-2018"
    ],
    [
        "projectname" => "First Project",
        "employee" => "First Client",
        "projectstart" => "12-12-2017",
        "projectend" => "12-12-2019",
        "task" => "Task 2",
        "description" => "Description 2",
        "commission" => "1000",
        "taststart" => "01-01-2018",
        "taskend" => "10-01-2018"
    ],
    [
        "projectname" => "First Project",
        "employee" => "First Client",
        "projectstart" => "12-12-2017",
        "projectend" => "12-12-2019",
        "task" => "Task 3",
        "description" => "Description 3",
        "commission" => "1000",
        "taststart" => "01-01-2018",
        "taskend" => "10-01-2018"
    ],

    [
        "projectname" => "Second Project",
        "employee" => "Second Client",
        "projectstart" => "12-12-2017",
        "projectend" => "12-12-2019",
        "task" => "Task 4",
        "description" => "Description 4",
        "commission" => "1000",
        "taststart" => "01-01-2018",
        "taskend" => "10-01-2018"
    ],
    [
        "projectname" => "Second Project",
        "employee" => "Second Client",
        "projectstart" => "12-12-2017",
        "projectend" => "12-12-2019",
        "task" => "Task 5",
        "description" => "Description 5",
        "commission" => "1000",
        "taststart" => "01-01-2018",
        "taskend" => "10-01-2018"
    ],
    [
        "projectname" => "Second Project",
        "employee" => "Second Client",
        "projectstart" => "12-12-2017",
        "projectend" => "12-12-2019",
        "task" => "Task 6",
        "description" => "Description 6",
        "commission" => "1000",
        "taststart" => "01-01-2018",
        "taskend" => "10-01-2018"
    ],


];

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <title>Bootstrap 101 Template</title>

    <!-- Bootstrap -->
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
</head>
<body>
<div class="container">
    <table class="table table-striped table-hover">
    <thead>
     <tr>
        <th>Project</th>
        <th>Client</th>
        <th>Project start on</th>
        <th>Project end on</th>
        <th>task</th>
        <th>description</th>
        <th>commission</th>
        <th>task start on</th>
        <th>task end on</th>
     </tr>
    </thead>
    <tbody>
    <?php
    $strSavedProjectName = false;
    foreach($arrData AS $arrItem)
    {
    ?>
     <tr>
        <?php
        if (!$strSavedProjectName || $strSavedProjectName!= $arrItem['projectname'])    :
        ?>
        <td><?=$arrItem['projectname']; ?>
        <td><?=$arrItem['employee']; ?>
        <td><?=$arrItem['projectstart']; ?>
        <td><?=$arrItem['projectend']; ?>
        <?php
        else :
        ?>
        <td colspan="4"></td>
        <?php
        endif;
        ?>
        <td><?=$arrItem['task']; ?>
        <td><?=$arrItem['description']; ?>
        <td><?=$arrItem['commission']; ?>
        <td><?=$arrItem['taststart']; ?>
        <td><?=$arrItem['taskend']; ?>
     </tr>
    <?php
        $strSavedProjectName = $arrItem['projectname'];
    }
    ?>
    </tbody>
    </table>
</div>
    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
</body>
</html>

这是一个完整的示例,基于您的数据 - 因此您应该能够轻松地将其转换为您的视图。

逻辑

我实现的隐藏逻辑按以下顺序工作:

  • 初始条件
  • 主循环
  • 条件检查
  • 记住最后的条件

HTML表和PHP如下所示:

<table border="1">
    <thead>
        <tr>
            <th>Project</th>
            <th>Client</th>
            <th>Project Start</th>
            <th>Project End</th>
            <th>Task</th>
            <th>Description</th>
            <th>Commission</th>
            <th>Task Start</th>
            <th>Task End</th>
        </tr>
    </thead>
    <tbody>
        <!-- Initial Condition -->
        <?php $the_project = "";?>

        <!-- Main Loop -->
        <?php foreach ($data as $x => $datum) { ?>
            <tr>

            <!-- Condition Check -->
            <!-- If not the same with the last project, it will show the columns. -->
            <!-- That's why the Initial Condition is empty so that the 1st time this Condition Check run will always result true. -->
            <?php if($datum['project'] != $the_project) { ?>
                <td><?php echo $datum['project'];?></td>
                <td><?php echo $datum['client'];?></td>
                <td><?php echo $datum['proj_start'];?></td>
                <td><?php echo $datum['proj_end'];?></td>
            <?php } else { ?>
                <td colspan="4">&nbsp;</td>
            <?php } ?>
            <!-- /Condition Check -->

                <td><?php echo $datum['task'];?></td>
                <td><?php echo $datum['desc'];?></td>
                <td><?php echo $datum['commission'];?></td>
                <td><?php echo $datum['task_start'];?></td>
                <td><?php echo $datum['task_end'];?></td>
            </tr>

            <!-- Remember Last Condition -->
            <?php $the_project = $datum['project'];?>
        <?php }?>   
        <!-- /Main Loop -->     
    </tbody>
</table>

您不必比较所有ProjectClientStart DateEnd Date ,假设同一项目将具有相同的ClientStart DateEnd Date 这就是为什么它只比较项目( $the_project )。

数据

您可以将此作为样本数据使用,就像查询中的数据一样。

<?php 
    $data = array(
        array(
            "project"   =>  "Mobile App",
            "client"    =>  "Client One",
            "proj_start"=>  "12-12-2017",
            "proj_end"  =>  "12-12-2019",
            "task"      =>  "task 1",
            "desc"      =>  "desc 1",
            "commission"=>  "1000",
            "task_start"=>  "01-01-2018",
            "task_end"  =>  "10-01-2018"
        ),
        array(
            "project"   =>  "Mobile App",
            "client"    =>  "Client One",
            "proj_start"=>  "12-12-2017",
            "proj_end"  =>  "12-12-2019",
            "task"      =>  "task 2",
            "desc"      =>  "desc 2",
            "commission"=>  "1000",
            "task_start"=>  "01-02-2018",
            "task_end"  =>  "10-02-2018"
        ),
        array(
            "project"   =>  "Mobile App",
            "client"    =>  "Client One",
            "proj_start"=>  "12-12-2017",
            "proj_end"  =>  "12-12-2019",
            "task"      =>  "task 3",
            "desc"      =>  "desc 3",
            "commission"=>  "1000",
            "task_start"=>  "01-04-2018",
            "task_end"  =>  "10-05-2018"
        ),
        array(
            "project"   =>  "Web App",
            "client"    =>  "Client Two",
            "proj_start"=>  "12-12-2017",
            "proj_end"  =>  "12-12-2019",
            "task"      =>  "task 1",
            "desc"      =>  "desc 1",
            "commission"=>  "1000",
            "task_start"=>  "01-01-2018",
            "task_end"  =>  "10-01-2018"
        ),
        array(
            "project"   =>  "Web App",
            "client"    =>  "Client Two",
            "proj_start"=>  "12-12-2017",
            "proj_end"  =>  "12-12-2019",
            "task"      =>  "task 2",
            "desc"      =>  "desc 2",
            "commission"=>  "1000",
            "task_start"=>  "01-02-2018",
            "task_end"  =>  "10-02-2018"
        )
    );
?>

提示1

我认为不再需要$i ,因为您可以从代码示例中的$key获得相同的结果。 唯一的区别是$key从0开始。

提示2

如果您仍然需要$i ,则可以简化此代码

<tr <?php if($i%2==0){echo 'class="even"';}else{echo'class="odd"';}?>>

<tr class="<?php echo ($i%2==0) ? "even":"odd" ?>">

提示3

我不知道你的<tr>偶数或奇数类的目的,但如果你想为每个类设计不同的颜色,你可能想检查Bootstrap并将其设置为<table class="table table-striped">

编辑查询为SELECT * FROM expenses, income WHERE expenses.projectname=income.projectname AND expenses.task=income.task Blockquote GROUP BY PROJECTID

首先,您应该重新安排$ viewdata1数据结构。 基本上,在主项目数据字段和任务数据字段之间分开,然后以更好的方式组合它们。

我的假设是:
1. [task,ExpenseName,ExpenseAmount,pn,cname,taskcost,amount,datetimepicker_mask] =>都是任务数据字段
2. [projectname,employee] =>是所有项目数据字段

在你的模型中 (让我们将它命名为project_model ),
1.具有查询[projectname或employee或projectID或所有其他项目数据字段]的函数 ,让我们将其命名为allProject() 确保它返回类似的东西

[ 
  0 => [ 
          'id' => 101,
          'projectName' => 'Desktop App' , 
          other project data fields
        ] , 
  1 => [ 
          'id' => 102,
          'projectName' => 'Mobile App' , 
          other project data fields
        ] , 
  2 => [ 
          'id' => 103,
          'projectName' => 'Andriod App' , 
          other project data fields
        ] , 
  etc... 
]

2.具有基于[projectname或projectID]搜索/查询[task,ExpenseName,ExpenseAmount,pn,cname,taskcost,amount,datetimepicker_mask]的函数...让我们将其命名为task_query(projectID) ...确保它返回类似的东西

[
  0 => [ 
            'id' => 222,
            'projectID' => 101
            'task' => 'task 1',
            'description' => 'description 1',
            other task data fields
          ] , 
  1 => [ 
            'id' => 236,
            'projectID' => 101
            'task' => 'task 2',
            'description' => 'description 2',
            other task data fields
          ] , 
  2 => [ 
            'id' => 245,
            'projectID' => 101
            'task' => 'task 3',
            'description' => 'description 3',
            other task data fields
          ] , 
  etc.
]

控制器中

$data['viewdata1'] = $this->project_model->allProject();
foreach($data['viewdata1'] as $key => $value)
{
  $value['taskData'] = $this->project_model->task_query($value['id']);
}

$ data ['viewdata1']应该看起来像......

[ 
  0 => [ 
          'id' => 101,
          'projectName' => 'Desktop App' , 
          other project data fields,
          'taskData' => [
                          0 => [ 
                                    'id' => 222,
                                    'projectID' => 101,
                                    'task' => 'task 1',
                                    'description' => 'description 1',
                                    other task data fields
                                  ] , 
                          1 => [ 
                                    'id' => 236,
                                    'projectID' => 101,
                                    'task' => 'task 2',
                                    'description' => 'description 2',
                                    other task data fields
                                  ] , 
                          2 => [ 
                                    'id' => 245,
                                    'projectID' => 101,
                                    'task' => 'task 3',
                                    'description' => 'description 3',
                                    other task data fields
                                  ] , 
                          etc.
                        ]
        ] , 
  1 => [ 
          'id' => 102,
          'projectName' => 'Mobile App' , 
          other project data fields,
          'taskData' => [
                          0 => [ 
                                    'id' => 123,
                                    'projectID' => 102,
                                    'task' => 'task 1b',
                                    'description' => 'description 1b',
                                    other task data fields
                                  ] , 
                          1 => [ 
                                    'id' => 124,
                                    'projectID' => 102,
                                    'task' => 'task 2b',
                                    'description' => 'description 2b',
                                    other task data fields
                                  ] , 
                          2 => [ 
                                    'id' => 125,
                                    'projectID' => 102,
                                    'task' => 'task 3b',
                                    'description' => 'description 3b',
                                    other task data fields
                                  ] , 
                          etc.
                        ]
        ] , 
  2 => [ 
          'id' => 103,
          'projectName' => 'Andriod App' , 
          other project data fields,
          'taskData' => [
                          0 => [ 
                                    'id' => 567,
                                    'projectID' => 103,
                                    'task' => 'task 1c',
                                    'description' => 'description 1c',
                                    other task data fields
                                  ] , 
                          1 => [ 
                                    'id' => 568,
                                    'projectID' => 103,
                                    'task' => 'task 2c',
                                    'description' => 'description 2c',
                                    other task data fields
                                  ] , 
                          2 => [ 
                                    'id' => 569,
                                    'projectID' => 103,
                                    'task' => 'task 3c',
                                    'description' => 'description 3c',
                                    other task data fields
                                  ] , 
                          etc.
                        ]
        ] , 
  etc... 
]

你们都为观点做好了准备

<table class="table table-lg">
<thead >
    <tr class="filters">

       <th><input type="text" class="form-control" placeholder="Project" disabled></th>
        <th><input type="text" class="form-control" placeholder="Employee" disabled></th>
        <th><input type="text" class="form-control" placeholder="Task" disabled></th>
        <th><input type="text" class="form-control" placeholder="Expense" disabled></th>
        <th><input type="text" class="form-control" placeholder="Amount" disabled></th>
        <th><input type="text" class="form-control" placeholder="Paid/Not" disabled></th>
        <th><input type="text" class="form-control" placeholder="Client" disabled></th>
        <th><input type="text" class="form-control" placeholder="Cost" disabled></th>
        <th><input type="text" class="form-control" placeholder="Income " disabled></th>
        <th><input type="text" class="form-control" placeholder="Date" disabled></th>

    </tr>
</thead>
<tbody>
<?php
if(isset($view_data1) && is_array($view_data1) && count($view_data1)): $i=1;
foreach ($view_data1 as $key1 => $data1) { 
    $howManyTasks = count($data1['taskData']);
      ?>

      <tr <?php if($i%2==0){echo 'class="even"';}else{echo'class="odd"';}?>>
          <td rowspan="<?= $howManyTasks ?>"><?php echo $data1['projectname']; ?></td> 
          <td rowspan="<?= $howManyTasks ?>"><?php echo $data1['employee']; ?></td> 

          <?php foreach($data1['taskData'] as $key2 => $data2) {?>
                <td><?php echo $data2['task']; ?></td> 
                <td><?php echo $data2['ExpenseName']; ?></td> 
                <td><?php echo $data2['ExpenseAmount']; ?></td>
                <td><?php echo $data2['pn']; ?></td>  
               <td><?php echo $data2['cname']; ?></td>
               <td><?php echo $data2['taskcost']; ?></td> 
               <td><?php echo $data2['amount']; ?></td> 
               <td><?php echo $data2['datetimepicker_mask']; ?></td> 
          </tr>
          <?php if($key2 != ($howManyTasks-1) ){ ?> <tr> <?php } ?>
          <?php } ?>
      <?php
          $i++;
      }
    else:
?>
<tr>
    <td colspan="7" align="center" >No Records Found..</td>
</tr>
<?php
    endif;
?>
</tbody>                
</table>
if($key == 0){
   $project_name = $data['projectname'];
   $first = true;
}else{
   $first = false;
   if($project_name != $data['projectname']){
      $project_name = $data['projectname'];
      $first = true;
   }
}


<td><?php     
if($first == true){
  ehco $data['projectname'];
}else{
  echo "";
}
</td>

在你的foreach中尝试这样的我没有厌倦但它可能有用,你可能会得到一些想法。 在第一个循环中,它将检查$ key,首先它将为0,如果$ key不为0,则$ first变量将为true然后它将检查$ project name到循环项目名称,如果它不匹配则将替换它。 对要删除或清空的客户端和其他列使用相同的列表。 我希望这可行或者它会给你一些想法。

使用in_array()函数并为你的td设置你的colspanrowspan

在您的视图页面中使用以下代码,

<table class="table table-lg">
<thead >
    <tr class="filters">

       <th><input type="text" class="form-control" placeholder="Project" disabled></th>
        <th><input type="text" class="form-control" placeholder="Employee" disabled></th>
        <th><input type="text" class="form-control" placeholder="Task" disabled></th>
        <th><input type="text" class="form-control" placeholder="Expense" disabled></th>
        <th><input type="text" class="form-control" placeholder="Amount" disabled></th>
        <th><input type="text" class="form-control" placeholder="Paid/Not" disabled></th>
        <th><input type="text" class="form-control" placeholder="Client" disabled></th>
        <th><input type="text" class="form-control" placeholder="Cost" disabled></th>
        <th><input type="text" class="form-control" placeholder="Income " disabled></th>
        <th><input type="text" class="form-control" placeholder="Date" disabled></th>

    </tr>
</thead>
<tbody>
<?php
if(isset($view_data1) && is_array($view_data1) && count($view_data1)): $i=1;

foreach ($view_data1 as $key => $data) 
{ 
   $number_of_task[$data['projectname']][] =  $data['task'];
}

foreach ($view_data1 as $key => $data) { 
$array = array();
?>

<tr <?php if($i%2==0){echo 'class="even"';}else{echo'class="odd"';}?>>

<?php if(!in_array($data['projectname'],$array)) { 
 $array[] = $data['projectname'];
?>
    <td><?php echo $data['projectname']; ?></td> 
    <td><?php echo $data['employee']; ?></td> 
<?php  } else { ?>    
<td colspan="2" rowspan="<?php echo count($number_of_task[$data['projectname']]); ?>"> </td> 
    <td><?php echo $data['task']; ?></td> 
    <td><?php echo $data['ExpenseName']; ?></td> 
    <td><?php echo $data['ExpenseAmount']; ?></td>
    <td><?php echo $data['pn']; ?></td>  
   <td><?php echo $data['cname']; ?></td>
   <td><?php echo $data['taskcost']; ?></td> 
   <td><?php echo $data['amount']; ?></td> 
   <td><?php echo $data['datetimepicker_mask']; ?></td> 
</tr>
<?php
    $i++;
      }
}
    else:
?>
<tr>
    <td colspan="7" align="center" >No Records Found..</td>
</tr>
<?php
    endif;
?>
</tbody>                
</table>

这是我处理它的方式。 我希望这和你遇到的问题一样:)

*重要的是,变量$ dcost和$ cd是我自己设置的变量,请根据你的需要进行调整

之前 之前 后 在代码之前

foreach(your sql variable){
echo '<tr><td style="border-right:1px solid #000;text-align:center;vertical-align:middle;">'.$dcost['destination'].'</td>
        <td style="border-right:1px solid #000;text-align:center;vertical-align:middle;">'.$dcost['timein'].'</td>
        <td style="border-right:1px solid #000;text-align:center;vertical-align:middle;">'.$dcost['timein'].'</td>
        <td style="border-right:1px solid #000;text-align:center;vertical-align:middle;">'.$dcost['timein'].'</td>
        <td style="border-right:1px solid #000;text-align:center;vertical-align:middle;">'.$dcost['timeout'].'</td>';
        <td style="border-right:1px solid #000;text-align:center;vertical-align:middle;" class="mday">'.$cd['mday'].'</td><td style="border-right:1px solid #000;text-align:center;vertical-align:middle;" data-mrate="'.$cd['mrate'].'" class="mrate">'.rupiah($cd['mrate']).'</td><td style="border-right:1px solid #000;text-align:center;vertical-align:middle;" class="tm"></td><td style="border-right:1px solid #000;text-align:center;vertical-align:middle;" class="lday">'.$cd['lday'].'</td><td style="border-right:1px solid #000;text-align:center;vertical-align:middle;" data-lrate="'.$cd['lrate'].'" class="lrate">'.rupiah($cd['lrate']).'</td><td style="border-right:1px solid #000;text-align:center;vertical-align:middle;" class="tl"></td></tr>';}

代码之后

foreach(your sql variable){
echo '<tr>';
if($i - 1 == 1){
    $i = 0;
echo '  <td style="border-right:1px solid #000;text-align:center;vertical-align:middle;">'.$dcost['destination'].'</td>
        <td style="border-right:1px solid #000;text-align:center;vertical-align:middle;">'.$dcost['timein'].'</td>
        <td style="border-right:1px solid #000;text-align:center;vertical-align:middle;">'.$dcost['timein'].'</td>
        <td style="border-right:1px solid #000;text-align:center;vertical-align:middle;">'.$dcost['timein'].'</td>
        <td style="border-right:1px solid #000;text-align:center;vertical-align:middle;">'.$dcost['timeout'].'</td>';
}else{
echo '  <td colspan="5" style="border-right:1px solid #000;">&nbsp;</td>';
}
echo '<td style="border-right:1px solid #000;text-align:center;vertical-align:middle;" class="mday">'.$cd['mday'].'</td><td style="border-right:1px solid #000;text-align:center;vertical-align:middle;" data-mrate="'.$cd['mrate'].'" class="mrate">'.rupiah($cd['mrate']).'</td><td style="border-right:1px solid #000;text-align:center;vertical-align:middle;" class="tm"></td><td style="border-right:1px solid #000;text-align:center;vertical-align:middle;" class="lday">'.$cd['lday'].'</td><td style="border-right:1px solid #000;text-align:center;vertical-align:middle;" data-lrate="'.$cd['lrate'].'" class="lrate">'.rupiah($cd['lrate']).'</td><td style="border-right:1px solid #000;text-align:center;vertical-align:middle;" class="tl"></td></tr>';}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM