最初の php 検索フォームを作成しました。mysql アーカイブ内を検索します。
アーカイブには、名前 (Nome)、国 (Paese)、都市 (Città)、およびエリアを持つアイテムが含まれています。
私は5つのアイテムを持っています:
- イベルフローラ - バレンシア - スペイン - ヨーロッパ
- Intergift - マドリード - スペイン - ヨーロッパ
- Foodex Japan - 千葉 - Giappone - アジア
- 宝石 中国 - 香港 - 中国 - アジア
- UsFauna - ニューヨーク - アメリカ - 北欧
地域用と国用の 2 つの検索フィールドがあります。
私は実験していますが、なぜこのコードがこれらの結果を生成するのか理解できません:
- "asia" + "" => 2 つの結果、正解
- "europa" + "" => 2 つの結果、正解
- "europa" + "spagna" => 2 つの結果、正解
- "" + "spagna" => 2 件の結果、正解
"nordamerica" "" や "asia" "cina" など、他のすべての組み合わせでは 0 の結果が得られますが、これは明らかに間違っています...
これがコードです。誰かが私を助けてくれることを願っています。
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
$search_output = "";
if((isset($_POST['zonequery']) && $_POST['zonequery'] != "") || (isset($_POST['countryquery']) && $_POST['countryquery'] != "")){
$zonequery = preg_replace('#[^a-z 0-9?!]#i', '', $_POST['zonequery']);
$countryquery = preg_replace('#[^a-z 0-9?!]#i', '', $_POST['countryquery']);
$sqlCommand = "SELECT Area, Paese, Città, Nome FROM fiere WHERE Area LIKE '%$zonequery%' AND Paese LIKE '%$countryquery%'";
// Connect to your MySQL database here
// Create connection
$link=mysqli_connect("127.0.0.1","root","","fiere");
// Check connection
if (mysqli_connect_errno($link))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$query = mysqli_query($link, $sqlCommand) or die(mysql_error());
$count = mysqli_num_rows($query);
if($count > 1){
$search_output .= "<hr />$count risultati per <strong>$zonequery</strong> o <strong>$countryquery</strong><hr />";
while($row = mysqli_fetch_array($query)){
$zone = $row["Area"];
$country = $row["Paese"];
$city = $row["Città"];
$name = $row["Nome"];
$search_output .= "Fiera: $name - $city - $country - $zone<hr />";
} // close while
} else {
$search_output = "<hr />0 risultati per <strong>$zonequery</strong> o <strong>$countryquery</strong>";
}
}
?>
<html>
<head>
</head>
<body>
<h2>Ma quante belle fiere Madama Doré</h2>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Cerca Area:
<input name="zonequery" type="text" size="44" maxlength="88">
<br />
Cerca Paese:
<input name="countryquery" type="text" size="44" maxlength="88">
<br />
<input name="myBtn" type="submit">
<br />
</form>
<div>
<?php echo $search_output; ?>
</div>
</body>
</html>
編集:これは、要求されたテーブルのダンプ (希望) です。
EDIT 2: また、実際に実行される sql コマンドを画面に表示する行を追加しました。たとえば、 "" + "cina" の場合は次のようになります。