$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控制台中键入相同的命令时,它有效,有人帮助我,提前谢谢。
答案 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已经支持这个。