[英]How to Display output from MYSQL Full-Text query in PHP using Foreach
我讀了這篇文章,但我真的不明白。. 在PHP中檢索MySQL全文搜索的匹配上下文(和安全性)
我如何使用Foreach在PHP中顯示來自MYSQL全文查詢的數據。當我嘗試執行此操作時,實際上僅檢索到1行,而當我嘗試使用MYSQL工作台時,它將輸出2行。
這是我的代碼:
if (isset($_GET['search'])) {
$s = htmlspecialchars($_GET['search']);
$search = $conn->prepare("SELECT * FROM files WHERE MATCH (docu_title,description) AGAINST (:s)");
$search->bindParam(':s', $s);
$search->execute();
$find = $search->rowCount();
$search->fetch();
if ($find == 0) {
$searching = 0;
}
else{
$searching = 1;
}
}
我的PHP代碼
<?php
if (isset($searching)) {
if ($searching != 0) {
foreach($search as $sss)
{
echo "<td>" . $sss['docu_title'] . "</td>";
echo "<td>" . $sss['description'] . "</td>";
echo "<td><a href='downloads?id=" . $sss['id'] . "'>download</a></td>";
}
}
}
?>
請幫我這個..我還是新手。 謝謝 :)
刪除所有$find = $search->rowCount();
垃圾。
也可以使用while()
遍歷所有返回的記錄,而不是foreach()
。 要使用foreach()
您需要使用fetchAll()返回所有記錄,而不是fetch()
僅返回1。
$search = $conn->prepare("SELECT * FROM files WHERE MATCH (docu_title,description) AGAINST (:s)");
$search->bindParam(':s', $s);
$search->execute();
while($sss =$search->fetch());
{
echo "<td>" . $sss['docu_title'] . "</td>";
echo "<td>" . $sss['description'] . "</td>";
echo "<td><a href='downloads?id=" . $sss['id'] . "'>download</a></td>";
}
對於每個$ search-> fetch(),您將獲取一行,而光標將移至下一行,因此,每次在表中填充第二行時。 因此,在第一個代碼中刪除$ search-> fetch(),它將顯示所有行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.