【问题标题】:Hide result on table if previous record is same如果先前的记录相同,则在表上隐藏结果
【发布时间】:2020-03-18 03:32:21
【问题描述】:

我有一个问题,如果循环中的上一条记录像

,如何隐藏结果
$s="SELECT * from tabel";
$qs=mysqli_query($conn, $s);
echo "<table>";
while($rs=mysqli_fetch_assoc($qs)) {
$tgl=date("d.m.y",strtotime($rs['tgl']));
$kode=$rs['kode'];
$desc=$rs['desc'];
echo "<tr><td>$tgl</td><td>$kode</td><td>$desc</td></tr>";
}
echo "</table>";

例如上一条记录的日期与下一条记录的日期相同,如果在表格上打印的值看起来是双倍的,则仅在更改或不同时打印记录。当日期更改然后打印时,下一条记录的日期相同(不打印)。此外,仅在代码更改或与先前记录不同时才打印代码

这张图片和代码可以说明我的观点 谢谢

Before

After

结果:

<table>
<tr>
<td>DATE</td>
<td>KODE</td>
<td>DESC</td>
</tr>
<tr>
<td>2019-11-20</td>
<td>ISO123</td>
<td>Test</td>
</tr>
<tr>
<td></td>
<td></td>
<td>Row</td>
</tr>
<tr>
<td></td>
<td>DEF00</td>
<td>Column</td>
</tr>
<tr>
<td>2019-11-21</td>
<td>CCV09</td>
<td>Change</td>
</tr>
<tr>
<td></td>
<td></td>
<td>Value</td>
</tr>
<tr>
<td></td>
<td>TRI124</td>
<td>Hide</td>
</tr>
<tr>
<td></td>
<td></td>
<td>Duplicate</td>
</tr>
</table>

【问题讨论】:

  • 请分享您创建此表的 PHP 代码。
  • 创建变量以跟踪前列的内容并在不同时显示它
  • 是的,我已经添加了 php 代码 @ascsoftw
  • @ThumChoonTat 你想给我一个例子,代码如何识别之前的循环,比如 $num=0; $num++

标签: javascript php mysql mysqli


【解决方案1】:

试试下面的代码:

$prev_tg1 = $prev_kode = '';  //Create Placeholders.

while($rs=mysqli_fetch_assoc($qs)) {
    $tgl = date("d.m.y",strtotime($rs['tgl']));
    $kode = $rs['kode'];
    $desc = $rs['desc'];

    if( $prev_tg1 == $tg1 ) {  //Check same as previous
        $tg1 = '';              //set it to empty if same
    } else {
        $prev_tg1 = $tg1;      //Update the Placeholder
    }

    if( $prev_kode  == $kode ) {
        $kode = '';
    } else {
        $prev_kode  = $kode;
    }   
    echo "<tr><td>$tgl</td><td>$kode</td><td>$desc</td></tr>";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多