无法正确检索索引 mysqli


cannot retrieve indexes correctly mysqli

$search = htmlspecialchars($_GET["s"]);
if(isset($_GET['s'])) {
// id index exists
$wordarray = explode(" ",$search);
$stringsearch = implode('%',$wordarray);
echo $stringsearch;
echo ",";
$result = mysqli_fetch_array($conn->query("SELECT ID FROM table WHERE title LIKE '%$stringsearch%';")); 
if (!empty($result)) {
 echo sizeof($result);
 echo ",";

数据库有 3 行标题为测试,害虫,嵌套,相应 id 为 1,2,3。 当我请求 domain.com/?s=est

它呼应了这样的东西预计,2,

现在,当我检查$result[0]和$result[1]时,$result[0]回显了1$result[1]没有回显任何东西。当我使用 foreach 函数时,它只取 $result[0] 的值

$result应该是所有三个索引的数组。

我找不到任何错误,当我在SQL控制台中键入相同的命令时,它可以工作,有人帮助我,提前感谢。

问题是,如果您期望多行,请不要这样做:

$result = mysqli_fetch_array($conn->query("SELECT ID FROM table WHERE title LIKE '%$stringsearch%';")); 

这只获取第一行,你需要循环它以前进下一个指针并获取下一个后续行集:

$result = $conn->query("SELECT ID FROM table WHERE title LIKE '%$stringsearch%' ");
while($row = $result->fetch_array()) {
    echo $row[0] . '<br/>';
    // or $row['ID'];
}

旁注:考虑改用预准备语句,因为 mysqli 已经支持此功能。