【发布时间】:2016-10-20 03:30:48
【问题描述】:
我正在创建一个在数据库中搜索字符串的功能。 PHP 使用 PHP 验证器没有显示错误,如果搜索词不存在,它会返回正确的错误。我的问题是,在标题为“搭配”的数据库列(目前是数据库中的唯一条目)中搜索“匆忙放弃”一词时,没有返回任何结果。虽然我可以使用 phpMyAdmin 看到这个条目确实存在。
用户使用以下 HTML 将字符串输入到输入字段中:
<form action='http://www.murkyfiles.esy.es/search.php' method='GET'>
<center>
<p><label for='search'>Please enter your question as accurately as possible:</label></p>
<p><input type='search' size='90' name='search'></p>
<p><input type='submit' name='submit' value='Find answer'></p>
</center>
</form>
使用以下 PHP 在数据库中搜索输入的术语:
<?php
$button = $_GET [ 'submit' ];
$search = $_GET [ 'search' ];
$host = "[HOST URL]";
$username = "[USERNAME]";
$password = "[PASSWORD]";
$database = "[DATABASE]";
$searchlength = strlen($search);
if( !$button )
echo "You didn't submit a keyword";
else {
if( strlen( $search ) <= 1 )
echo "Search term too short";
else {
echo "You searched for <b> $search </b> <hr size='1' > </ br > ";
// Connect to database
$con = mysqli_connect ( $host, $username, $password );
if(!$con) {
die('Could not connect: ' .PDO::errorInfo());
}
mysqli_select_db ( $con, $database );
$search = str_split($search, $searchlength);
$construct = " SELECT * FROM 'coll_test' WHERE collocation LIKE '%$search%' ";
$run = mysqli_query( $con, $construct );
//Fetch and return search results.
if ($foundnum == 0)
echo "Sorry, there are no matching results for <b> $search[0] </b>.
</ br >
</ br > 1. Try presenting your Something is wrong in a more academic manner. Guidance can be found on the majority of University websites without need for registration.
</ br > 2. Try more common words/phrases with similar meaning. This search focuses on colloquialisms - commonly used phrases within a language.
</ br > 3. Please check your spelling";
else {
echo "$foundnum results found !<p>";
while ( $runrows = mysqli_fetch_assoc($run) ) {
$collocation = $runrows ['collocation'];
echo "<a href='$url'> <b> $title </b> </a> <br> $desc <br> <a href='$url'> $url </a> <p>";
}
}
}
}
我查看了各种类似的问题,但没有一个提供解决方案。
为了澄清,数据库表列标题如下:
搭配 | 左 | 正确 | 长度 | 谷歌搜索结果 | 必应结果 | 雅虎结果 | 网址链接 | 维基 | 日期
到目前为止,我的数据库中只有一个条目:
collocation = abandon hastily
left = abandon
right = NULL
length = 2
google-results = 24000000
bing-results = 386000
yahoo-results = 385000
url-link = oxforddictionary.so8848.com/search1?word=abandon
wiki = 0
date = [TIMESTAMP]
【问题讨论】:
-
那么
$foundnum在哪里定义的呢? -
你为什么使用
str_split? -
对不起,我的互联网有点喜怒无常。现在会试试看。我使用 str_split 是因为有人告诉我它必须是一个数组,而不是一个字符串......但我使用了两个搜索词“放弃敌意”,我想找到与整个字符串匹配的结果,而不仅仅是匹配的结果“放弃”和“敌意”分开。不知道如何使用爆炸。
标签: php html mysql arrays phpmyadmin