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

まず、 query 内に書き込む前に variable をフィルタリングする必要があります..CITY_ID = ".$_POST['country']."。このコードにより、攻撃者はクエリにコードを挿入できます。Sqlインジェクションを確認してください。これを回避するには、mysql_real_escape_string()を使用します。

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

また、一意の配列にはarray_unique()、、、 句を使用できます。また、ループ内で重複した値を配列に書き込むことを回避できます。すべては、データベース構造とクエリに依存します。SELECT DISTINCTGROUP BY

于 2012-04-08T07:40:55.387 に答える
0

重複は見られません。基本的に、group by 構文を繰り返し処理し、それらを 2 つの 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} の組み合わせはユニークです。

于 2012-04-08T07:49:35.027 に答える