Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么mysqli中的搜索栏中没有显示成功的结果_Php_Mysqli - Fatal编程技术网

Php 为什么mysqli中的搜索栏中没有显示成功的结果

Php 为什么mysqli中的搜索栏中没有显示成功的结果,php,mysqli,Php,Mysqli,我的Mysqli代码没有显示成功搜索的结果。该查询在语句方面是正确的,因为这是在MYSQL中测试的。但是当尝试使用mysqli时,我似乎无法在成功搜索后显示结果。我做错了什么?在执行错误报告时,我没有收到任何错误,查询中也没有拼写错误。我不知道这是因为查询需要跳出循环,还是因为我绑定了错误的参数或类似的东西,但代码在旧的mysql代码中工作,但在mysqli中无法工作(由于我的PHP版本,无法使用PDO) 应用程序的URL为。如果你输入“AAD”,它会说它找不到任何结果,而实际上它应该这样做,因

我的Mysqli代码没有显示成功搜索的结果。该查询在语句方面是正确的,因为这是在MYSQL中测试的。但是当尝试使用mysqli时,我似乎无法在成功搜索后显示结果。我做错了什么?在执行错误报告时,我没有收到任何错误,查询中也没有拼写错误。我不知道这是因为查询需要跳出循环,还是因为我绑定了错误的参数或类似的东西,但代码在旧的mysql代码中工作,但在mysqli中无法工作(由于我的PHP版本,无法使用PDO)

应用程序的URL为。如果你输入“AAD”,它会说它找不到任何结果,而实际上它应该这样做,因为数据库中有5行包含术语“AAD”

以下是表格代码:

<form action="previousquestions.php" method="get">
      <p>Search: <input type="text" name="questioncontent" value="<?php echo $questioncontent; ?>" onchange="return trim(this)" /></p>
      <p><input id="searchquestion" name="searchQuestion" type="submit" value="Search" /></p>
      </form>

搜索:更改语句:

$questionquery .= "IF(q.QuestionContent LIKE '%'.$each.'%' ,1,0)";
$questionquery .= "q.QuestionContent LIKE '%'.$each.'%' ";
$questionquery .= "OR q.QuestionContent LIKE '%'.$each.'%' ";
就此(分别):

另外,我认为您需要对
$stmt
变量执行以下操作:

$stmt = $mysqli->stmt_init();
$stmt->prepare($questionquery);
//execute query
$stmt->execute();
更改声明:

$questionquery .= "IF(q.QuestionContent LIKE '%'.$each.'%' ,1,0)";
$questionquery .= "q.QuestionContent LIKE '%'.$each.'%' ";
$questionquery .= "OR q.QuestionContent LIKE '%'.$each.'%' ";
就此(分别):

另外,我认为您需要对
$stmt
变量执行以下操作:

$stmt = $mysqli->stmt_init();
$stmt->prepare($questionquery);
//execute query
$stmt->execute();

出现此错误消息的原因是,
$stmt
不是一个。原因是传递给
$mysqli->prepare
的语句中存在语法错误

"… q.QuestionContent LIKE '%'.$each.'%' "
这会导致如下结果:

… q.QuestionContent LIKE '%'.<value of each>.'%'
哦,再说一遍:你真的应该看看。这会使整个手动查询建筑过时:

… WHERE MATCH (q.QuestionContent) AGAINST ("search terms" IN NATURAL LANGUAGE MODE)

出现此错误消息的原因是,
$stmt
不是一个。原因是传递给
$mysqli->prepare
的语句中存在语法错误

"… q.QuestionContent LIKE '%'.$each.'%' "
这会导致如下结果:

… q.QuestionContent LIKE '%'.<value of each>.'%'
哦,再说一遍:你真的应该看看。这会使整个手动查询建筑过时:

… WHERE MATCH (q.QuestionContent) AGAINST ("search terms" IN NATURAL LANGUAGE MODE)


@秋葵汤不是在@t-ShirtDude上定义的,我只是在你的应用程序中测试你的答案。我将在5分钟内告诉您发生了什么:)准备语句的原因之一是将命令和数据分开。但在这里你又弄混了。@T-ShirtDude OK它已经删除了致命错误,但是如果我回到上一个问题,它会导致搜索栏无法正常工作。有一个小问题,如果它是一个成功的搜索,它不会显示搜索结果,你对此有什么想法吗?我正在更新代码,给我2分钟时间我已经更新了代码,我还没有包括此代码:
$stmt=$mysqli->stmt_init(),因为它删除了错误,但没有此选项。我确实在我的应用程序中尝试了这一行代码,但它并没有改变显示结果的结果search@Gumbo这不就是@t-ShirtDude上定义的吗?我只是在你的应用程序中测试你的答案。我将在5分钟内告诉您发生了什么:)准备语句的原因之一是将命令和数据分开。但在这里你又弄混了。@T-ShirtDude OK它已经删除了致命错误,但是如果我回到上一个问题,它会导致搜索栏无法正常工作。有一个小问题,如果它是一个成功的搜索,它不会显示搜索结果,你对此有什么想法吗?我正在更新代码,给我2分钟时间我已经更新了代码,我还没有包括此代码:
$stmt=$mysqli->stmt_init(),因为它删除了错误,但没有此选项。我确实在我的应用程序中尝试了这一行代码,但它没有改变显示搜索结果的结果。Hi,Gumbo只是2个小问题,你在哪里显示了全文搜索的f行代码,我如何将这一行代码放在查询中,我是否将它放在where子句旁边,然后为这两个类似语句添加and子句?另外,在测试代码时,它在提交搜索后向我显示一条警告,说明
警告:call_user_func_array()[function.call user func array]:第一个参数应该是有效的回调,'mysqli_stmt::bind_params'在。。。在线98
。向上投票answer@user1421767我还没有测试这个查询;由于语法错误,准备它仍然可能失败。如果你想使用全文搜索,请先阅读链接页面。它将解释所有必要的内容。我将阅读文档,但要说的是将类似的语句替换为“MATCH(q.QuestionContent)”对(“search terms”在自然语言模式下)`?或者我还需要使用LIKE语句吗?@user1421767不,单个
匹配…对…
将替换所有
…LIKE…
表达式。因此我的查询应该是:
$questionquery=“从回答内部连接问题q上选择*q.AnswerId=an.AnswerId加入回答r上q.ReplyId=r.ReplyId加入选项\u表o上的q.OptionId=o.OptionId,其中匹配(q.QuestionContent)与自然语言模式下的($each)”;
(使用$each匹配术语)然后用group by,orderby完成查询,如果我在查询的末尾有一个小问题Hi,Gumbo只是2个小问题,在这里你已经显示了全文搜索的f行代码,我如何将这行代码放在查询中,我是否将它放在where子句旁边,然后为这两个lIKE语句添加And子句?同样在测试代码时,它在提交搜索后向我显示一条警告,说明
警告:call\u user\u func\u array()[function.call user func array]:第一个参数应该是有效的回调,'mysqli_stmt::bind_params'在第98行的…中给出answer@user1421767我尚未测试该查询;由于语法错误,准备该查询可能仍会失败。如果您想使用全文搜索,请先阅读链接页面。它将解释所有必要的内容。我将在文档中,但是你说替换类似的语句作为“MATCH(q.QuestionContent)from”(“search terms”在自然语言模式下)`?或者我仍然需要使用类似的语句吗?@user1421767不,单个
匹配…from…
将替换所有
?