1

在我的代码中,我想通过名字、姓氏和电子邮件字段搜索朋友。现在我想匹配数据库表字段名称中的确切字符串。我也想显示该字段。我还想获取搜索数据的 id,然后我将显示关于该人的完整描述。我该怎么做它。感谢对我的任何帮助。我试试看。

$term=$_POST['find'];
$searchquery=mysql_query("select firstname,lastname,email from account where output LIKE %$term%");
4

4 回答 4

2

您正在寻找:

SELECT id, firstname, lastname, email
FROM account
WHERE firstname LIKE %$term%
OR lastname LIKE %$term%
OR email LIKE %$term%
LIMIT 20

请注意,您的方式有潜在危险,您应该保护您的$term变量:

$term = mysql_real_escape_string($_POST['find']);

Anso 请注意 mysql_* 系列函数正在弃用过程中,您应该查看 PDO 或 mysqli。

编辑:

$term添加了一个 LIMIT ,因为如果不包含任何内容,我认为您不想恢复所有数据库表。

于 2012-10-02T06:06:36.353 回答
1

查询应该是这样的

$searchquery=mysql_query("select id,firstname,lastname,email from account where firstname LIKE '%$term%' OR lastname LIKE '%$term%' OR email LIKE '%$term%'");

如果您想在这 3 列(名字、姓氏、电子邮件)中进行搜索。

于 2012-10-02T06:05:12.963 回答
1

更改您的查询以获取您想要显示的所有需要​​的信息,并根据该术语检查您的 where 语句。像这样:

select id, firstname, lastname, email /*, ... other fields */ from account where firstname LIKE '%$term%' OR lastname LIKE '%$term%' OR email LIKE '%$term%'
于 2012-10-02T06:07:03.613 回答
1
select firstname,lastname,email from account where concat_ws(' ',firstname,lastname,email) LIKE %$term%"

将所有三个字段视为单个字段,结果会更快

于 2012-10-02T06:12:28.733 回答