php mysql搜索脚本,如何使匹配结果加粗

标签 php mysql database bold

我下面有一个脚本,它从我的网页上的 mysql 数据库中读取显示的信息,请问如何将匹配的结果加粗?例如,如果我搜索“john”,如何使显示的结果为“john bloggs”。谢谢

这是到目前为止的脚本,

<?
mysql_connect ("localhost", "user","pass")  or die (mysql_error());
mysql_select_db ("databasename");

$term = $_POST['term'];

$sql = mysql_query("select * from tablename where category like '%$term%' or title like '%$term%' or postcode like '%$term%' or info like '%$term%' ");

while ($row = mysql_fetch_array($sql)){
    echo '<br/> Category: '.$row['category'];
    echo '<br/> Title: '.$row['title'];
    echo '<br/> Address: '.$row['add1'];
    echo '<br/> Street: '.$row['street'];
    echo '<br/> City: '.$row['city'];
    echo '<br/> Postcode: '.$row['postcode'];
    echo '<br/> Phone: '.$row['phone'];
    echo '<br/> E-Mail: '.$row['email'];
    echo '<br/> Website: '.$row['website'];
    echo '<br/><br/>';
    }
?>

最佳答案

例如,假设您有一个数组 $results其中包含您的 MySQL 查询的一些结果。

假设您正在搜索字段 name .

您可以使用非常简单的 str_replace实现这一目标:

foreach($results as $result)
    echo str_replace($search,'<b>'.$search.'</b>',$result['name']);

这会替换 $search 的所有实例(这应该是您的搜索字符串)与 <b>$search</b>$result['name'] 内.

在您的情况下:

while ($row = mysql_fetch_array($sql)){

    echo '<br/> Category: '.str_replace($term,'<b>'.$term.'</b>',$row['category']);
    echo '<br/> Title:    '.str_replace($term,'<b>'.$term.'</b>',$row['title']);
    echo '<br/> Address:  '.$row['add1'];
    echo '<br/> Street:   '.$row['street'];
    echo '<br/> City:     '.$row['city'];
    echo '<br/> Postcode: '.str_replace($term,'<b>'.$term.'</b>',$row['postcode']);
    echo '<br/> Phone:    '.$row['phone'];
    echo '<br/> E-Mail:   '.$row['email'];
    echo '<br/> Website:  '.$row['website'];
    echo '<br/><br/>';

}

顺便说一下(重要)

你在这里做什么:

$term = $_POST['term'];

$sql = mysql_query("select * from tablename where category like '%$term%' or title like '%$term%' or postcode like '%$term%' or info like '%$term%' ");

非常危险。 $_POST['term']来自用户,如果这个用户填写';DROP TABLE tablename --怎么办? ?您的查询会突然更改为会删除整个表并删除所有信息的内容。

你应该经常检查你的用户输入,这里有一个很好的教程解释了一些方法:

http://www.tizag.com/mysqlTutorial/mysql-php-sql-injection.php

关于php mysql搜索脚本,如何使匹配结果加粗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7309948/

相关文章:

php最小结果时间段

php - 将表单变量传递到 Php 查询

java - 小程序不会将结果保存到本地主机上的数据库

c# - SQLGetInfo - 如何使用此函数

php - 为什么我的链接没有通过 php 电子邮件功能显示出来?

php - 如何根据国家IP地址重定向域

mysql - Rails 错误地转义了我的查询

mysql - 如何更改mysql.sock?

php - mysqli_query 和 mysqli_fetch_assoc 给出错误

mysql - 如何从 SQL Server 中的现有数据库创建新数据库