首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止来自同一个id的数据出现

防止来自同一个id的数据出现
EN

Stack Overflow用户
提问于 2014-11-14 01:51:30
回答 2查看 31关注 0票数 1

我希望防止amaun_caj、amaun_pelbagai、amaun_penalti、amaun_tunggakan被重复使用,所以如果id_akaun是相同的,数据就不会出现,我的代码只在amaun_caj上工作,而对于其他的数据,没有一个数据出现,有什么问题?

代码语言:javascript
复制
<?php 

$i = 0; $id_akaun_old ="";
while($output = mysql_fetch_array($result)) {
$i++;
$id_akaun           =   $output["id_akaun"];
$lokasi             =   $output["lokasi"];
$amaun_caj          =   $output["amaun_caj"];
$amaun_tunggakan    =   $output["amaun_tunggakan"];
$amaun_penalti      =   $output["amaun_penalti"];
$amaun_pelbagai     =   $output["amaun_pelbagai"];
$jumlah_bayaran     =   $output["jumlah_bayaran"];



?>



<tr>

<td>
<?php echo $i; ?>
</td>

<td>
<?php echo $jenis; ?>
</td>

<td>
<?php echo $id_akaun;
 ?>
</td>

<td>
<?php echo $no_telefon; ?>
</td>

<td>
<?php echo $lokasi; ?>
</td>

<td align="center">
<?php 
if($id_akaun != $id_akaun_old):
    echo $amaun_caj; 
    $id_akaun_old = $id_akaun;
else: echo ''; 
endif;?>
</td>

<td align="center">
<?php 
if($id_akaun != $id_akaun_old):
    echo $amaun_pelbagai; 
    $id_akaun_old = $id_akaun;
else: echo ''; 
endif;?>
</td>

<td align="center">
<?php 
if($id_akaun != $id_akaun_old):
    echo $amaun_penalti; 
    $id_akaun_old = $id_akaun;
else: echo ''; 
endif;?>
</td>

<td align="center">
<?php 
if($id_akaun != $id_akaun_old):
    echo $amaun_tunggakan; 
    $id_akaun_old = $id_akaun;
else: echo ''; 
endif;?>
</td>


<td align="center">
<?php 
if($id_akaun != $id_akaun_old):
    echo $jumlah_bayaran; 
    $id_akaun_old = $id_akaun;
else: echo ''; 
endif;?>
</td>



<?php
}
?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-14 02:37:58

我不知道为什么在本例中不想使用select distinct子句,但只需将它们放在容器中,然后在循环中检查:

代码语言:javascript
复制
<?php 
$temp = array();
$i = 1;
while($output = mysql_fetch_array($result)): 
    $id_akaun           =   $output["id_akaun"];
    $lokasi             =   $output["lokasi"];
    $amaun_caj          =   $output["amaun_caj"];
    $amaun_tunggakan    =   $output["amaun_tunggakan"];
    $amaun_penalti      =   $output["amaun_penalti"];
    $amaun_pelbagai     =   $output["amaun_pelbagai"];
    $jumlah_bayaran     =   $output["jumlah_bayaran"];
?>
<tr>
    <td><?php echo $i; $i++; ?></td>
    <td><?php echo $jenis; ?></td>
    <td><?php echo $id_akaun; ?></td>
    <td><?php echo $no_telefon; ?></td>
    <td><?php echo $lokasi; ?></td>
    <?php if(!in_array($id_akaun, $temp)): ?>
        <td><?php echo $amaun_penalti; ?></td>
        <td><?php echo $amaun_tunggakan; ?></td>
        <td><?php echo $jumlah_bayaran; ?></td>
        <?php $temp[] = $id_akaun; ?>
    <?php else : ?>
        <td></td><td></td><td></td>
    <?php endif; ?>
</tr>
<?php endhile; ?>
票数 0
EN

Stack Overflow用户

发布于 2014-11-14 02:27:18

使用临时变量$old_id_akaun可能不是最佳实践。如果您仍然想这样做,我建议您在SQL语法中按id_akaun进行用户排序。

在我的oppinion中,您可以去掉临时变量并执行以下步骤,

代码语言:javascript
复制
 1. Create empty array outside your while loop. For the sake of easy 
 understanding, let's called it $list_id_akaun.
 2. Inside your while loop, after you get $id_akaun, check whether $id_akaun 
 is inside $list_id_akaun
 3. If not exists, insert it to $list_id_akaun and continue echoing your 
 table row
 4. If exists, skip to the next row.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26921677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档