无法正确检索索引mysqli

时间:2014-11-16 04:33:17

标签: php mysql mysqli fetch

$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

时 它回复了这样的事情 的 EST,2,

现在当我检查$ result [0]和$ result [1]时, $ result [0] 回显 1 $ result [1] < / strong>没有回应任何事情。当我使用foreach函数时,它只取$ result [0]

的值

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

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

1 个答案:

答案 0 :(得分:1)

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

$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已经支持这个。