0

我正在使用教程来创建搜索引擎。但是,我希望允许用户继续在搜索中输入,但在输入一定数量的文本后让搜索忽略任何内容。

我在这里看到

include_once ('database_connection.php');//Including our DB Connection file
if(isset($_GET['keyword'])){//IF the url contains the parameter "keyword"
 $keyword =     trim($_GET['keyword']) ;//Remove any extra  space
$keyword = mysqli_real_escape_string($dbc, $keyword);//Some validation

$query = "select topictitle,topicdescription from topics where topictitle like '%$keyword%' or topicdescription like '%$keyword%'";
//The SQL Query that will search for the word typed by the user .

$result = mysqli_query($dbc,$query);//Run the Query
if($result){//If query successfull
 if(mysqli_affected_rows($dbc)!=0){//and if atleast one record is found
 while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){ //Display the record
 echo '<p> <b>'.$row['topictitle'].'</b> '.$row['topicdescription'].'</p>'   ;
 }
 }else {
 echo 'No Results for :"'.$_GET['keyword'].'"';//No Match found in the Database
 }

}
}else {
 echo 'Parameter Missing in the URL';//If URL is invalid
}

但我不知道如何做到这一点,所以在用户输入 7 个字符后让用户继续输入,但在第 7 个字符之后忽略任何内容。有什么帮助吗?

4

2 回答 2

1
<?php 
    include_once ('database_connection.php');//Including our DB Connection file
    if(isset($_GET['keyword'])){//IF the url contains the parameter "keyword"

            $keyword=$_GET['keyword'];
        if(strlen($_GET['keyword'])>7)
        {
            $keyword= substr($_GET['keyword'],0,7);
        }
        $keyword =     trim($keyword) ;//Remove any extra  space
        $keyword = mysqli_real_escape_string($dbc, $keyword);//Some validation
        $query = "select topictitle,topicdescription from topics where topictitle like '%$keyword%' or topicdescription like '%$keyword%'";
        //The SQL Query that will search for the word typed by the user .
        $result = mysqli_query($dbc,$query);//Run the Query
        if($result){//If query successfull
             if(mysqli_affected_rows($dbc)!=0){//and if atleast one record is found
                 while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){ //Display the record
                     echo '<p> <b>'.$row['topictitle'].'</b> '.$row['topicdescription'].'</p>'   ;
                 }
             }
            else {
                 echo 'No Results for :"'.$_GET['keyword'].'"';//No Match found in the Database
             }
        }

    }
    else {
         echo 'Parameter Missing in the URL';//If URL is invalid
    }
?>
于 2013-08-07T03:42:25.017 回答
1

尝试这个

$keyword   =     trim($_GET['keyword']) ;//Remove any extra  space
$keyword   =     mysqli_real_escape_string($dbc, $keyword);//Some validation
if(strlen($keyword) > 7){
  $keyword =    substr($keyword,0,7);//This will give you first 7 characters if the user input is greater than seven characters in length.
}
于 2013-08-07T03:35:24.473 回答