如何在php mysql中搜索精确的单词匹配并获得精确的结果

如何在php mysql中搜索精确的单词匹配并获得精确的结果,php,mysql,Php,Mysql,如何查找准确的数字 这个代码是这样工作的 12345678 12345678 如果我搜索12345678(这是完整的否),它没有显示任何内容 之后,如果我搜索此编号1234567(此编号不完整) 所以它是这样显示结果的 12345678 12345678 像这样 12345678 12345678 12348591 12346899 12345698 12345678 12345678 我想要这样的结果 如果我搜索此编号12345678(此为完整编号) 所以它是这样显示的 1234567

如何查找准确的数字

这个代码是这样工作的

12345678
12345678
如果我搜索12345678(这是完整的否),它没有显示任何内容

之后,如果我搜索此编号1234567(此编号不完整)

所以它是这样显示结果的

12345678
12345678
像这样

12345678
12345678
12348591
12346899
12345698
12345678
12345678
我想要这样的结果

如果我搜索此编号12345678(此为完整编号)

所以它是这样显示的

12345678
12345678
我该怎么做?请帮助我解决此问题

这是密码

<?php

    //connect to database

     mysql_connect('localhost','root','');
     mysql_select_db('member');

$alphabet = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'); 
foreach ($alphabet as $letter) { 
echo "<a href=\"viewuser.php?letter=" . $letter . "\" class=\"style2\">" . $letter . "</a>&nbsp;|&nbsp;"; 

} 


echo "<br>";
echo "<a href=\"index.php?\" class=\"style2\">Show All</a></p><br /> <form method=\"post\" action=\"?\">

        <input type=\"hidden\" name=\"letter\" value=\"{$_GET['letter']}\" />";


$page = (empty($_GET['page'])) ? 1 : $_GET['page'];
$letter = (empty($_GET['letter'])) ? "%" : $_GET['letter'];
$name = (empty($_GET['name'])) ? "%male" : $_GET['name'];
?></td>
            </tr>

            <p> 
              <?php

//get date
$button = $_GET['submit'];
$search = $_GET['search'];

$s = $_GET['s'];
if (!$s)

$s = 0;
$e = 12;

$next = $s + $e; $prev = $s - $e;
    if (strlen($search)<=1)
   echo "";

    else
   {
     echo "<class=\"style2\"> You searched for <b>$search</b>";

     //connect to database

     mysql_connect('localhost','root','');
     mysql_select_db('member');



 //explode search term
           $search_exploded = explode(" ",$search);
           foreach($search_exploded as $search_each)
{
    $str = mysql_real_escape_string(substr($search_each, 0, 9));
    //construct query
    $x++;
    if ($x==1) $construct .= "number LIKE '$str%'";

}




        //echo out construct

  $construct = "SELECT * FROM workorder WHERE $construct";

    $run = mysql_query($construct);
     $foundnum = mysql_num_rows($run);
       if ($foundnum==0)
        echo "<class=\"style2\">No user found.";
     else
     {






 ?>






<?php

 echo "<class=\"style2\"><p>$foundnum results found.</p>";

       while ($runrows = mysql_fetch_assoc($run))
              {
echo "<table class='hovertable' border='1' cellpadding='0' cellspacing='0'>";
echo "<tr><th>User name</th><th>Number</th><th>Exchange</th><th>Cabnint</th><th>Service</th><th>Open Date</th><th>Close Date</th><th>Remaks</th><th>Status</th><th>Edit</th><th>Detail</th><th>Delete</th></tr>";

if ($runrows > 0) {
        while($runrows = mysql_fetch_array($run)) {
                echo "<tr><td>";
             echo $runrows['username'];
            echo "</td><td>";
                echo $runrows['number'];
                echo "</td><td>";
            echo $runrows['exchange'];
        echo "</td><td>";
        echo $runrows['cabnint'];
                echo "</td><td>";
        echo $runrows['service'];
                echo "</td><td>";
        echo $runrows['opendate'];
                echo "</td><td>";
        echo $runrows['closedate'];
                echo "</td><td>";
        echo $runrows['remaks'];
                echo "</td><td>";
        echo $runrows['status'];
                echo "</td><td>";
            echo '<a href="edit.php?id=' . $runrows['id'] . '" class="style2">Edit</a>';
        echo "</td><td>";
            echo '<a href="detail.php?id=' . $runrows['id'] . '" class="style2">Detail</a>';
        echo "</td><td>";
            echo '<a href="delete.php?id=' . $runrows['id'] . '" class="style2">Delete</a>';
                echo "</td></tr>";

        }
} else {
        echo "<tr><td colspan=\"5\">No results found!</td></tr>";
}

echo "</table>";
       }

     }



    }
?>

要搜索需要删除的确切数字,请更改:

if ($x==1) $construct .= "number LIKE '$str%'";

通过执行以下操作,将结果循环两次:

while ($runrows = mysql_fetch_assoc($run))
..
if ($runrows > 0) {
        while($runrows = mysql_fetch_array($run)) {
只需将其更改为:

if ($runrows > 0) {
        while($runrows = mysql_fetch_array($run)) {

我替换了你的代码,但它没有显示任何结果。它显示了1个结果。找到了msg,但没有结果showing@user2903400见更新answer@user2903400检查您之前的问题,我已经回答了检查并回答mesudhiar我再次替换您的代码,但它不起作用不要重复同一个问题,我已经回答了你之前的问题,请检查一下,但是你的答案是不正确的,这就是为什么我在这里再次提问。抱歉给你带来不便,我的答案可能不符合你的要求,但是你不再问同样的问题。我不是在责怪你再次问同样的问题,根据SO规则,您是新用户,如果您继续问这样的问题,他们将阻止您的帐户,因此,为了您的福利和保持论坛质量,我只是这么说。希望你能理解我。没问题,亲爱的