0

Texas Courts の連絡先情報を含むテーブルが 1 つしかない、かなり単純なデータベースがあります。検索フォームを使用すると、ユーザーはその種類の裁判所を選択してから、検索したい市または郡の名前 (別のフィールド) を入力できます。

コード:

$sql = mysql_query ("SELECT * FROM COURTS
                      WHERE Type = '$_POST[Type]' AND City LIKE '$_POST[City]' 
                      OR Type = '$_POST[Type]' AND County LIKE '$_POST[County]'
                      ORDER BY County, City")

or die(mysql_error()); ?>

<table id="customers">
<?php while($rows = mysql_fetch_array($sql)): ?>
<tr class="alt">
<td><?php echo $rows[Court]; ?>&nbsp<?php echo $rows[Type]; ?><br></td>
<td><?php echo $rows[City]; ?>,&nbsp<?php echo $rows[State]; ?><br></td>
<td><?php echo "<a href=$rows[URL]>Court Info</a>"; ?><br></td>
</tr>
<?php endwhile; ?>
</table>

郡名とは異なる名前の都市 (例: Boerne, Kendall County) を検索すると、テーブルに 1 つしか存在しない場合、MySQL はその都市に対して 2 つの結果を返します。最初のリターンには現在の検索結果ページへのハイパーリンクがあり、2 番目のリターンには適切な情報ページへのリンクがあります。都市がその名前を郡と共有している場合 (例: バンデラ、バンデラ郡)、正しい URL を持つ 1 つのリストが返されます。

グループ化、並べ替え、泣き言を試しましたが、何も機能しません。

編集:

括弧を追加しても同じ問題が発生します...

$sql = mysql_query ("SELECT * FROM COURTS
                      WHERE (Type = '$_POST[Type]' AND City LIKE '$_POST[City]') 
                      OR (Type = '$_POST[Type]' AND County LIKE '$_POST[County]')
                      ORDER BY County, City")

編集:テーブル構造...

+--------------+--------------+----------+-----------+---------+-------+-------+---------------+--------------+----------+--------------+
|     Type     |    Court     |  County  |  Street   |  City   | State |  Zip  |     Email     |   Website    |  Phone   |     URL      |
+--------------+--------------+----------+-----------+---------+-------+-------+---------------+--------------+----------+--------------+
| Justice of.. | Precinct 1.. | Anderson | P O Box.. | Elkhart | TX    | 75839 | gthomas@co... | http://www.. | 903-76.. | http://www.. |
+--------------+--------------+----------+-----------+---------+-------+-------+---------------+--------------+----------+--------------+

そして、都市名がその郡名と一致しない場合の結果:

+-------------------+-------------+------------+
| Boerne Municipal  | Boerne, TX  | Court Info | <<Court info links to the wrong URL (current page)
+-------------------+-------------+------------+
| Boerne Municipal  | Boerne, TX  | Court Info | <<Court Info links to correct URL
+-------------------+-------------+------------+

上記の結果は、データベースに市裁判所のエントリが 1 つしかないベルネ市のものです。

4

1 に答える 1

0

括弧が必要です...

$sql = mysql_query ("SELECT * FROM COURTS
                      WHERE (Type = '$_POST[Type]' AND City LIKE '$_POST[City]') 
                      OR (Type = '$_POST[Type]' AND County LIKE '$_POST[County]')
                      ORDER BY County, City")
于 2013-09-08T17:41:47.177 に答える