このウェブサイトは、司法管轄区ごとに特定の法律/規則を表示することを目的としています。
郡を検索し、郡名を画面に表示する単純な mysqli クエリがあります。
echo "><a href=\"index.php?sel_subj=" . urlencode($subject["county_name"]) . "\">
{$subject["county_name"]}</a></li>";
次に郡名 (リンクに埋め込まれている) をクリックすると、mysqli クエリがその郡名のテーブルを検索し、その郡内のすべての管轄区域を取得することになっています。
if (isset($_GET['sel_subj'] )){
$query2 = "SELECT * FROM $sel_subj";
$result2 = $mysqli2->query($query2) or die($mysqli2->error.__LINE__);
while ($subject = mysqli_fetch_array($result2)) {
echo "<li";
echo "><a href=\"index.php?sel_page=" . urlencode($subject["muni_name"]);
echo "&sel_subj=" . urlencode($sel_subj). "\">
{$subject["muni_name"]}</a></li>";
}
}
問題は、一部の郡名にスペースやハイフンが含まれていることです。そのため、ハイフンまたはスペースのある郡をクリックすると、エラーが発生します。
ハイフンがあるとこのエラーが発生します (例: Miami-Dade): SQL 構文にエラーがあります。173 行目の「-Dade」付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。
スペースがある場合のエラー (例: Palm Beach): Table 'florida.palm' does not exist73
郡が特殊文字を含まない単なる文字列である場合、管轄区域は問題なく表示されます。
これに対する簡単な解決策はありますか?