我正在尝试使用文本框中的多个单词进行搜索,但我无法修复它。以下代码无效,但适用于搜索.replaceWith()
。
请参阅,如果您可以帮助我解决任何问题!
/_cluster/reroute
答案 0 :(得分:2)
您正在尝试将数组转换为字符串。 explode
返回一个数组。尝试改为
$search = $_POST['search'];
$search = trim($search);
$search = preg_replace('/\s+/', ' ', $kerko);
$keywords = explode(" ", $kerko);
$query = "SELECT * FROM weblinks WHERE ";
foreach ($keywords as $keyword) {
$query .= " post LIKE '%$keyword%' OR";
}
$query = rtrim($query, 'OR');
$sql = $conn->prepare($query);
$sql->execute();
while($row = $sql->fetch(PDO::FETCH_ASSOC)){
?>
答案 1 :(得分:1)
您必须将字符串传递给todays_table
函数。
另外,为确保帖子中包含每个字词,例如“LIKE”,您必须在所需字词的开头添加“ + ”符号。
MATCH AGAINST
然后是SQL查询:
$search = $_POST['search'];
$search = trim($search);
$search = preg_replace('/\s+/', ' ', $kerko);
$keywords = explode(" ", $kerko); // create array of keywords
// here we build the string to require all keywords
$keywds_str = "+" . implode(" +", $keywords);
请注意字符串连接。在您的示例中,查询必须从字面上查找“$ keywords”。
最后一点,启用php错误报告以了解代码中的错误。空白页面对您没什么帮助。
希望它有所帮助,祝你好运。
编辑:
自错误信息:
致命错误:带有消息'SQLSTATE [HY000]的未捕获异常'PDOException':常规错误:
1191在C:\ xampp \ htdocs \ scraping \ result.php中找不到与列列表匹配的FULLTEXT索引:82
堆栈跟踪:#0 C:\ xampp \ htdocs \ scraping \ result.php(82):PDOStatement-> execute()#1 {main}
在第82行的C:\ xampp \ htdocs \ scraping \ result.php中抛出
您必须按$sql = $conn->prepare("SELECT * FROM weblinks WHERE MATCH(post) AGAINST ('".$keywds_str."')");
索引表格列并启用该表格上的FULLTEXT
:
KEYS