首页 文章

PHP,mysql是一个布尔搜索

提问于
浏览
0

我是PHP的新手,希望有人能帮助我

我已经很远但现在我被卡住了 . 我一步一步完成了学习过程,因此下面的代码中有一些控制规则 . 我遇到的问题是运行MySQL查询,特别是在MATCH AGAINST函数中 . 正如您在代码中看到的,我在AGAINST的查询中添加了一个固定值 . 这非常有效 . 我通过在phpAdmin中键入查询然后在运行查询'创建PHP代码'后生成的查询 .

<?php
// not set?
if(!isset($_POST['omschrijving2'])) exit('nothing posted');
// get posted values
$keywords = $_POST['omschrijving2'];
$qualifier = $_POST['qualifier'];
//do the search and search using all the terms if 'all'
if ($qualifier == "all")
{
$words=explode(" ",$keywords);
//add + operator to each keyord
$keywords = '';
foreach($words as $word) {
$keywords .= "+".$word." ";
}
echo $keywords; // '+vleugel +model '
$keywords = rtrim($keywords); // remove last space
echo '<br>'.$keywords; // '+vleugel +model'
echo "is de keyword waarde";
}
else
{
echo "geen waarde in keywoord";
}
mysql_connect("localhost","xxx","xxx","xxx");
mysql_select_db('museum');
$query = mysql_query("SELECT omschrijving FROM `rapporten` WHERE MATCH (`rapnaam` ,       `omschrijving`)\n"
. "AGAINST (\"+vleugel +model\" IN BOOLEAN MODE) ");
if(!$query) {
echo mysql_error()."<br>$query<br>";
}
else
{
while($row = mysql_fetch_array($query)){
echo "
"; echo $row['omschrijving']; echo "
"; } } ?>

我得到的问题是当我在查询中替换动态值“AGAINST('$ keywords'IN BOOLEAN MODE)中的固定值时,则没有收到任何值 . 如果我将值更改为”AGAINST(' . $ keywords . '在BOOLEAN模式..)“);然后我得到这个错误;'where子句'中的未知列'vleugel'第三个变种我试过这个,”反对( . $ BOOLEAN模式中的关键字)“,导致错误消息,您的SQL语法中有错误;请查看对应池塘与MySQL服务器版本对应的手册,以便在'vleugel staart附近使用正确的语法 . 在BOOLEAN模式中''在第2行进行所有测试,我输入值vleugel形式的模型 .

任何想法如何解决这一问题 . 我不知道这是否重要,但我使用Dreamweaver和mysql版本5.5.24进行此项目 . 提前致谢

1 回答

  • 0

    尝试用{$ keywords}替换它 .

    "SELECT omschrijving FROM `rapporten` WHERE MATCH (`rapnaam`, `omschrijving`) AGAINST (\"{$keywords}\" IN BOOLEAN MODE)"
    

相关问题