php - 在数据库中搜索数据。 PHP

标签 php mysql

我有 table :

|-id-|--------name-------|

| 1  |  George Martin    |

我像这样提取数据:

function search ($query)
{
    $query = trim($query);
    $query = mysql_real_escape_string($query);
    $query = htmlspecialchars($query);

    if (!empty($query))
    {
        if (strlen($query) < 3) {
            $text = '<p>Enter 3 or more letters.</p>';
        } else if (strlen($query) > 128) {
            $text = '<p>Too many letters.</p>';
        } else {
            $q = "SELECT *
                  FROM `table` WHERE `name` LIKE '%$query%'";

            $result = mysql_query($q);...

当我输入搜索“George”时,它会找到 - “George Martin”

当我输入搜索“Martin”时,它会找到 - “George Martin”

当我输入搜索“Martin George”时,它没有找到我的任何内容。

有没有办法在不使用 namesecond name 创建新表的情况下进行最后拉取?

最佳答案

你的查询应该是

SELECT * FROM `table` WHERE `name` LIKE '%$query%' or `name` ='$query'";

关于php - 在数据库中搜索数据。 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28404697/

相关文章:

php - 如何在 MAMP 安装上从终端运行 mysql 命令?

php - 编辑模式下的多个复选框 : Undefined index

php - Mysql 查询使用 OR 条件进行全文搜索

mysql - 为什么当字段用引号标记时,MySQL 可以正确排序,而 SQLite 却不能?

php - mysql 中的 num_row 操作?

xdebug_start_trace 行为异常

php - 计算两个日期包含的日历月数

mysql - 优化mysql查询运行时间较长

MySQL 使用 concat 将多行合并为一列,但不使用 GROUP

mysql - 当第一个字符是逗号时删除它