Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我用这个搜索表单得到错误的结果?_Php_Mysql - Fatal编程技术网

Php 为什么我用这个搜索表单得到错误的结果?

Php 为什么我用这个搜索表单得到错误的结果?,php,mysql,Php,Mysql,我构建了我的第一个php搜索表单,它在mysql存档中搜索 档案包含名称(Nome)、国家(Paese)、城市(Cittá)和地区的项目 我有5项: 伊比利亚-巴伦西亚-斯帕尼亚-欧罗巴 Intergift-马德里-斯帕尼亚-欧罗巴 日本食品展-千叶-吉亚蓬-亚洲 中国-香港-中国-亚洲/LI> 美国动物-纽约-美国-北美 有两个搜索字段,一个用于地区,另一个用于国家 我正在试验,我不明白为什么这段代码会产生这些结果: “亚洲”+“”=>2个结果,对吗 “europa”+“”=>2个结果,

我构建了我的第一个php搜索表单,它在mysql存档中搜索

档案包含名称(Nome)、国家(Paese)、城市(Cittá)和地区的项目

我有5项:

  • 伊比利亚-巴伦西亚-斯帕尼亚-欧罗巴
  • Intergift-马德里-斯帕尼亚-欧罗巴
  • 日本食品展-千叶-吉亚蓬-亚洲
  • <珠宝>中国-香港-中国-亚洲/LI>
  • 美国动物-纽约-美国-北美
有两个搜索字段,一个用于地区,另一个用于国家

我正在试验,我不明白为什么这段代码会产生这些结果:

  • “亚洲”+“”=>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>

尝试使用var_dump()转储生成查询。您是否可以编辑您的问题并添加“fire”表的转储(即选择)?您可能都没事,为什么会出现错误?这相当于一个表数据问题?(Offtopic:通常最好连接到“localhost”,因为这样系统将生成一个UNIX套接字而不是真正的套接字。)感谢您的回答,我将在上午添加一个转储。关于“使用var_dump()转储您的构建查询”,请记住这是我第一次尝试php,所以我不知道这是什么意思。