php和sql数据库在文本字符串中查找单词,查找特定单词并计算从用户输入中找到每个单词的次数

问题描述 投票:0回答:1

刚接触PHP和数据库学习,研究发现了PHP字符串字数统计手册。不知道这个功能怎么用?我的目标是匹配字符串中的特定单词并计算它们。我的问题之一是查看从驻留在数据库中的文本区域收集的值。

用户输入的文本区域中的所有名称都在数据库中,如果有一个名称并且只有一个名称我可以像Tom一样搜索并找到它。如果有多个名字 IE Tom Bob Harry,则没有匹配项。似乎数据库中的多个名称被视为一个字符串 IE Tom space(space) Bob (space) Harry (space) 现在是 TomBobHarry,无论是在新行(空格)上还是在其旁边带有(空格)。

我的问题是这个?如果我将字符串分成带有空格的单词,然后我可以搜索并计算单词吗? 我怎样才能做到呢?

非常感谢任何建议。预先感谢。

我的目标是匹配字符串中的特定单词并计算它们。我的问题之一是查看从驻留在数据库中的文本区域收集的值。

我的问题是这个?如果我将字符串分成带有空格的单词,然后我可以搜索并计算单词吗? 我怎样才能做到呢?

我现在拥有的:

`if(!empty($_POST))
{
      $aKeyword = explode(" ", $_POST['keyword']);
        
     $query = "SELECT  custumer FROM  subscribers WHERE custumer like '%" . $aKeyword[0] . "%'";
     
     for($i = 1; $i < count($aKeyword); $i++) {
        if(!empty($aKeyword[$i])) {
            $query .= " OR custumer like '%" . $aKeyword[$i] . "%'";
        }
      }
    `if(!empty($_POST))
{
      $aKeyword = explode(" ", $_POST['keyword']);
        
     $query = "SELECT  custumer FROM  subscribers WHERE custumer like '%" . $aKeyword[0] . "%'";
     
     for($i = 1; $i < count($aKeyword); $i++) {
        if(!empty($aKeyword[$i])) {
            $query .= " OR custumer like '%" . $aKeyword[$i] . "%'";
        }
      }
    
     $result = $db->query($query);
     echo "<br>You have searched for keywords: " . $_POST['keyword'];
                    
     if(mysqli_num_rows($result) > 0) {
        $row_count=0;
        echo "<br>Result Found: ";
        echo "<br><table border='1'>";
        While($row = $result->fetch_assoc()) {   
            $row_count++;                         
            echo "<tr><td> ROW ".$row_count." </td><td>". $row['custumer'] . "</td></tr>";
        }
        echo "</table>";
    }
    else {
        echo "<br>Result Found: NONE";
    }
}


    
?>

Below is the form:


<form action="search.php" method="post" >
    <h3>Search Keywords:</h3>
    <input type="text" name="keyword">
    <input type="submit" value="Search">
</form>`

非常感谢任何建议。预先感谢。

php text mysqli count
1个回答
0
投票

使用此代码

<?php
if(!empty($_POST)) {
    if (!strlen(trim($_POST['keyword']))){
        echo 'Keywords is empty';
        exit;
    }
    $aKeyword = explode(" ", trim($_POST['keyword']));

        $query = "SELECT  custumer FROM  subscribers WHERE custumer like '%" . $aKeyword[0] . "%'";

        if (count($aKeyword)>1) {
            for ($i = 1; $i < count($aKeyword); $i++) {
                if (!empty($aKeyword[$i])) {
                    $query .= " OR custumer like '%" . $aKeyword[$i] . "%'";
                }
            }
        }
        $result = $db->query($query);
        echo "<br>You have searched for keywords: " . $_POST['keyword'];

        if (mysqli_num_rows($result) > 0) {
            $row_count = 0;
            echo "<br>Result Found: ";
            echo "<br><table border='1'>";
            while ($row = $result->fetch_assoc()) {
                $row_count++;
                echo "<tr><td> ROW " . $row_count . " </td><td>" . $row['custumer'] . "</td></tr>";
            }
            echo "</table>";
        } else {
            echo "<br>Result Found: NONE";
        }


}

?>

Below is the form:


<form action="search.php" method="post" >
    <h3>Search Keywords:</h3>
    <input type="text" name="keyword">
    <input type="submit" value="Search">
</form>
© www.soinside.com 2019 - 2024. All rights reserved.