从foreach中删除重复项

时间:2012-04-08 07:31:41

标签: php template-lite

我有这样的查询

SELECT TOWN, NAME FROM CINEMA WHERE CITY_ID = ".$_POST['country']." GROUP BY TOWN, NAME

在视图方面,我在template_lite

的帮助下获取值
   <table border="1" >
        <br />
 {foreach value=mp from=$mpbycity}
 <tr><td>{$mp.TOWN}</td></tr>
  <tr><td>{$mp.NAME}</td></tr>

 {/foreach}
    </table>

问题是重复。你可以从下面的图片中看到。

我尝试过array_unique,但它不起作用。

enter image description here

2 个答案:

答案 0 :(得分:1)

首先,在写入查询..CITY_ID = ".$_POST['country']."之前,必须先过滤变量。使用此代码,攻击者可以在查询时注入代码。检查Sql injection。为避免这种情况,请使用mysql_real_escape_string()

..CITY_ID = ".mysql_real_escape_string($_POST['country'])."...

对于唯一数组,您可以使用array_unique()SELECT DISTINCTGROUP BY子句。同样在循环中可以避免将重复值写入数组。一切都取决于您的数据库结构和查询。

答案 1 :(得分:0)

你没有重复。基本上,你是通过语法迭代分组,并在两个diff行中打印它们。

您拥有的输出就像

A B 
A C 
A D

B C 
B D 
B E

然后将其打印为

A
B
A
C
A
D
B
C
B
E

, 你认为是重复的。

组合{$ mp.TOWN}和{$ mp.NAME}组合是唯一的。