0

我有这样的查询

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 但它不起作用。

在此处输入图像描述

4

2 回答 2

1

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

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

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

于 2012-04-08T07:40:55.387 回答
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} 的组合是唯一的。

于 2012-04-08T07:49:35.027 回答