2012-04-08 57 views
0

删除重复我有这样从的foreach

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> 

问题是duplicates.You可以看到的帮助在图片下方。

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

enter image description here

+0

你的SQL看起来很不稳定。在数据库中查看您的表结构会很有帮助。 – Lion 2012-04-08 07:37:16

+1

'TOWN'是一样的,'VALUE'不是 – knittl 2012-04-08 07:38:19

回答

1

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

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

并以独特的数组,你可以使用array_unique()SELECT DISTINCTGROUP BY条款。在循环中也可避免将重复值写入数组。全部取决于你的数据库结构和查询。

+0

我该怎么做循环? – 2012-04-08 07:44:43

+0

在你运行mysql查询的地方写php代码 – safarov 2012-04-08 07:50:21

+0

我用框架 – 2012-04-08 07:55:15

0

你不是重复。基本上,你正在迭代语法组,并且你正在用两条差异线来打印它们。

你的输出是一样

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}的组合是唯一的。