2012-04-08 4 views
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> 

Проблема является duplicates.You можно видеть из ниже рис.

Я пробовал array_unique, но он не работает.

enter image description here

+0

Ваш SQL выглядит неуклюжим. Было бы полезно увидеть структуру вашей таблицы в вашей базе данных. – Lion

+1

'TOWN' то же самое,' VALUE' не – knittl

ответ

1

Во-первых, вы должны фильтровать переменную перед записью в запросе ..CITY_ID = ".$_POST['country'].". С помощью этого кода злоумышленник может вводить код в запрос. Проверьте Sql injection. Чтобы избежать этого, используйте mysql_real_escape_string().

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

И уникальный массив, вы можете использовать array_unique(), SELECT DISTINCT, GROUP BY положения. Также в цикле можно избежать записи повторяющихся значений в массив. Все зависит от структуры базы данных и запроса.

+0

как я могу это сделать в цикле? –

+0

напишите php-код, где вы запустите запрос mysql – safarov

+0

Я использую фреймворк –

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} объединены.

Смежные вопросы