PHP搜索关键字

标签 php mysql search

我有一个问题。有没有办法在我的 PHP 程序中搜索关键字?例如,如果数据库中有一个全名 Joe smith。如果我只搜索乔它就不会出现?但如果我精确搜索 Joe Smith,它就会出现。我想查看所有带有史密斯的名字。但它没有显示它

<?php
session_start();

if($_SESSION['username'])
{

//Include the connection file
include "connection.php";

$sql = "SELECT * FROM users ";

if (isset($_POST['search'])) {

$search_term = mysql_real_escape_string($_POST['search_box']);

$sql .= "WHERE fullname = '{$search_term}' ";

$sql .= " OR username = '{$search_term}' ";

$sql .= " OR address = '{$search_term}' ";

$sql .= " OR id = '{$search_term}' ";


}

$query = mysql_query($sql) or die(mysql_error());

echo '<FORM METHOD="LINK" ACTION="member.php">
<INPUT TYPE="submit" VALUE="Back">
</FORM>';
echo '<FORM METHOD="LINK" ACTION="display_data.php">
<INPUT TYPE="submit" VALUE="Refresh">
</FORM>';

}
else
{
die("You must be logged in!");
}

?>
<form name="search_form" method="POST" action="display_data.php">
Search: <input type='text' name='search_box' value='' />
<input type='submit' name='search' value='Search'>
</form>


<input type="button" onclick="printDiv('printableArea')" value="Print" />

<div id="printableArea">
<table width="70%" cellpadding="5" cellspace="5">

<tr>
    <td><strong>ID</strong></td>
    <td><strong>Fullname</strong></td>
    <td><strong>Username</strong></td>
    <td><strong>Address</strong></td>
</tr>
<?php while ($row = mysql_fetch_array($query)) { ?>
<tr>
    <td><?php echo $row['id']; ?></td>
    <td><?php echo $row['fullname']; ?></td>
    <td><?php echo $row['username']; ?></td>
    <td><?php echo $row['address']; ?></td>
</tr>

<?php }?>
</div>


</table>

<script>
function printDiv(divName) {
 var printContents = document.getElementById(divName).innerHTML;
 var originalContents = document.body.innerHTML;

 document.body.innerHTML = printContents;

 window.print();

 document.body.innerHTML = originalContents;
}
</script>

抱歉,我的英语确实不太好,但请尝试理解这些句子。

我还可以问一下如何打印带有Logi的可打印区域吗? Tnx:))))

最佳答案

您可以尝试LIKE而不是=

示例;

SELECT aut_name, country FROM author WHERE aut_name LIKE 'W%';

并在您的代码中

$sql = "SELECT * FROM users ";

if (isset($_POST['search'])) {

$search_term = mysql_real_escape_string($_POST['search_box']);

$sql .= "WHERE fullname LIKE '%{$search_term}%' ";

$sql .= " OR username LIKE '%{$search_term}%' ";

$sql .= " OR address LIKE '%{$search_term}%' ";

$sql .= " OR id LIKE '%{$search_term}%' "; 

关于PHP搜索关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21507663/

相关文章:

php - 根据先前的选择填充下拉列表

php - 如何跟踪运行给定进程的 PHP 脚本?

sql - mysql 时间戳语法错误

jquery - 自定义我们的搜索栏

sqlite - plist 或 sqlite

facebook-graph-api - Facebook 图形 API : Search beyond immediate circle

php - 与 db 的 Doctrine 联系

php - 一次提交多行mysql

php - 将带有特殊字符的文本从 MySQL/PHP 导出到 Excel

javascript - jquery ajax 添加到mysql数据库