Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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_Search_Mysqli - Fatal编程技术网

Php 搜索功能工作,但在执行搜索时显示随机数据

Php 搜索功能工作,但在执行搜索时显示随机数据,php,search,mysqli,Php,Search,Mysqli,我安装了一个非常简单的搜索脚本,它执行它应该执行的操作,但当它返回结果时,它会在返回的数据结果之前显示此信息: 对象(mysqli_结果)#2(5){[“当前_字段”]=>int(0)[“字段计数”]=>int(36)[“长度”]=>NULL[“num_行”]=>int(1)[“类型”]=>int(0)} 我能做些什么来避免这种情况发生吗 以下是search.php页面: <?php $con=mysqli_connect("xxxx","xxxx","xxxx","xxxx") or

我安装了一个非常简单的搜索脚本,它执行它应该执行的操作,但当它返回结果时,它会在返回的数据结果之前显示此信息:

对象(mysqli_结果)#2(5){[“当前_字段”]=>int(0)[“字段计数”]=>int(36)[“长度”]=>NULL[“num_行”]=>int(1)[“类型”]=>int(0)}

我能做些什么来避免这种情况发生吗

以下是search.php页面:

<?php
  $con=mysqli_connect("xxxx","xxxx","xxxx","xxxx") or die('Error connection');
  $data = '';
  if(isset($_POST['search']))
  {
$keyword = $_POST['search'];
$keyword = preg_replace("#[^0-9a-z]#i","",$keyword);
$query = "SELECT * FROM characters WHERE name LIKE '%$keyword%' ORDER BY name";
$result = mysqli_query($con,$query);
var_dump($result);
$count = mysqli_num_rows($result);
if($count>0)
while($row = mysqli_fetch_array($result))
{
$data = $data."<div>".$row['name']."</div>";
}
  }

?>

<?php echo $data; ?>


我明白了!谢谢你的帮助

如果没有任何ORDERBY子句,结果总是以任意顺序出现。SQL承诺返回正确的集合,但集合不必按任何特定顺序排列,除非您明确指定其他顺序。@GordonM我在此处以及页面上用order BY子句更新了上述代码。在执行搜索并返回结果时仍然显示该数据,但是,顺便说一句,如果这是一个真正的应用程序,请不要使用MySQL。如果您需要搜索,请在MySQL中创建全文索引或使用类似Solr/Elasticsearch的内容。@DougT。我不认为我需要像Elasticsearch这样大的东西——这是一个文本RPG游戏,搜索只是为了搜索角色或玩家姓名。这就是为什么我想让它保持简单。去掉var_dump($result)。