MySQL PHP部分搜索
我对部分世界搜索有问题 下面的代码可以工作,但只适用于全词搜索。如果我只在搜索框中输入部分单词,它将不起作用。请你能给我一个提示改什么才能做部分单词搜索吗MySQL PHP部分搜索,php,mysql,full-text-search,Php,Mysql,Full Text Search,我对部分世界搜索有问题 下面的代码可以工作,但只适用于全词搜索。如果我只在搜索框中输入部分单词,它将不起作用。请你能给我一个提示改什么才能做部分单词搜索吗 <?php include "connection.php"; $sql = "SELECT * FROM Klienci "; if (isset($_POST['search'])) { $search_term = mysql_real_escape_string($_POST['search_box']); $
<?php include "connection.php";
$sql = "SELECT * FROM Klienci ";
if (isset($_POST['search'])) {
$search_term = mysql_real_escape_string($_POST['search_box']);
$sql .= "WHERE nazwaKlienta = '{$search_term}' ";
$sql .= " OR adresMail = '{$search_term}' ";
$sql .= " OR adresMail2 = '{$search_term}' ";
}
$query = mysql_query($sql) or die(mysql_error());
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>BAZA | Dashboard</title>
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/jumbotron-narrow.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="header">
<ul class="nav nav-pills pull-right">
<li class="active"><a href="index.php">Home</a></li>
<li><a href="add_customer.php">Dodaj Firmę</a></li>
</ul>
<h3 class="text-muted">ITalents</h3>
</div>
<div class="row marketing">
<div class="col-lg-12">
<h2>KLIENCI</h2>
<table class="table table-striped">
<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 the table..." >
</form>
<tr>
<th>id</th>
<th>Klient</th>
<th>Email</th>
<th>Email 2</th>
<th>Data dodania do bazy</th>
</tr>
<?php while ($row = mysql_fetch_array($query)) {
//Display customer info
$output ='<tr>';
$output .='<td>'.$row['id'].'</td>';
$output .='<td>'.$row['nazwaKlienta'].'</td>';
$output .='<td>'.$row['adresMail'].'</td>';
$output .='<td>'.$row['adresMail2'].'</td>';
$output .='<td>'.$row['dataDodania'].'</td>';
$output .='<td><a href="edit_customer.php?id='.$row['id'].'" class="btn btn-default btn-sm">Edit</a></td>';
$output .='<td><a href="delete_customer.php?id='.$row['id'].'" class="btn btn-default btn-sm">Delete</a></td>';
$output .='</tr>';
//Echo output
echo $output;
?>
<?php } ?>
</table>
</div>
</div>
</div>
<div class="footer">
<p>© Company 2014</p>
</div>
</div> <!-- /container -->
</body>
</html>
&抄袭;公司2014
下面的代码应该可以工作。你必须使用LIKE而不是equal。例如:其中类似“%something2%”的内容
<?php include "connection.php";
$sql = "SELECT * FROM Klienci ";
if (isset($_POST['search'])) {
$search_term = mysql_real_escape_string($_POST['search_box']);
$sql .= "WHERE nazwaKlienta LIKE '%{$search_term}%' ";
$sql .= " OR adresMail LIKE '%{$search_term}%' ";
$sql .= " OR adresMail2 LIKE '%{$search_term}%' ";
}
$query = mysql_query($sql) or die(mysql_error());
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>BAZA | Dashboard</title>
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/jumbotron-narrow.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="header">
<ul class="nav nav-pills pull-right">
<li class="active"><a href="index.php">Home</a></li>
<li><a href="add_customer.php">Dodaj Firmę</a></li>
</ul>
<h3 class="text-muted">ITalents</h3>
</div>
<div class="row marketing">
<div class="col-lg-12">
<h2>KLIENCI</h2>
<table class="table table-striped">
<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 the table..." >
</form>
<tr>
<th>id</th>
<th>Klient</th>
<th>Email</th>
<th>Email 2</th>
<th>Data dodania do bazy</th>
</tr>
<?php while ($row = mysql_fetch_array($query)) {
//Display customer info
$output ='<tr>';
$output .='<td>'.$row['id'].'</td>';
$output .='<td>'.$row['nazwaKlienta'].'</td>';
$output .='<td>'.$row['adresMail'].'</td>';
$output .='<td>'.$row['adresMail2'].'</td>';
$output .='<td>'.$row['dataDodania'].'</td>';
$output .='<td><a href="edit_customer.php?id='.$row['id'].'" class="btn btn-default btn-sm">Edit</a></td>';
$output .='<td><a href="delete_customer.php?id='.$row['id'].'" class="btn btn-default btn-sm">Delete</a></td>';
$output .='</tr>';
//Echo output
echo $output;
?>
<?php } ?>
</table>
</div>
</div>
</div>
<div class="footer">
<p>© Company 2014</p>
</div>
</div> <!-- /container -->
</body>
</html>
&抄袭;公司2014
您需要使用LIKE或regex。使用LIKE
和通配符,或者查看全文搜索。也不要再使用mysql.*
使用PDO
或MySQLi
。如果你在询问之前先在网上搜索,这对你和SO社区都是有益的。如果你只是用这篇文章的标题搜索谷歌,你会找到大量的资源来帮助你解决这个问题。。。也就是说,LIKE关键字将是您正在寻找的。如果您正在编写新代码,请不要使用mysql.*
函数。它们是旧的、破损的,在PHP5.5中被弃用(它太旧了,甚至不再接收安全更新),在PHP7中被完全删除。使用或与准备好的语句和参数绑定一起使用。请参阅了解详细信息。无论如何,您应该避免使用mysql,我建议您学习mysqli或PDO。如果您在较新版本的PHP上运行此代码,它将无法工作,并且会使您的站点容易受到SQL注入的攻击。学习mysqli和mysql一样简单。更新@SMJobayerAlam,注意,mysql作为数据库使用是很好的。不过,PHPmysql.*
函数不应该再使用了。