Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查找与多列搜索查询匹配的列名_Php_Mysql_Sql - Fatal编程技术网

Php 查找与多列搜索查询匹配的列名

Php 查找与多列搜索查询匹配的列名,php,mysql,sql,Php,Mysql,Sql,我有一个简单的搜索查询,效果很好 $result = mysql_query("SELECT id, $column, $column2 FROM $table WHERE BINARY account_no='{$_SESSION['account']}' AND $column LIKE '$query' OR $column2 LIKE '$query'") or die(mysql_error()); $output_column=column1 or column2 //which

我有一个简单的搜索查询,效果很好

$result = mysql_query("SELECT id, $column, $column2 FROM $table WHERE BINARY account_no='{$_SESSION['account']}' AND $column LIKE '$query' OR $column2 LIKE '$query'") or die(mysql_error());

$output_column=column1 or column2 //which column has been matched?
然而,当有一个特定的列匹配,我想能够找出哪个列已经匹配


这可能吗?

是的,只需按如下方式编辑查询:

$result = mysql_query("
    SELECT 
        id, $column, $column2,
        IF ($column LIKE '$query', 1, 0) AS `column_true`,
        IF ($column2 LIKE '$query', 1, 0) AS `column2_true`
    FROM $table
    WHERE BINARY account_no='{$_SESSION['account']}' AND ($column LIKE '$query' OR $column2 LIKE '$query')")
or die(mysql_error());
因此,您还将获取另一个2数据字段。 如果列_true=1,则第一列条件为true 如果column2_true=1,则第二列条件为true

如果两者都是1,则列和列2都符合您的条件


顺便说一句:您的查询中有错误,缺少()或条件

这样做对您有用吗<代码>如果($column==$result[$column1])回显“第1列匹配”谢谢,但这似乎不起作用。Francisco Presencia,这不起作用,因为$result是资源,而不是数组。他使用mysql\u result或mysql\u fetch\u assoc(或mysql\u fetch\u数组)从$result获取数据,请参见下面我的回答。“您的查询中有错误吗?”??不是因为我笑了就投了反对票,结果只得到了一半。我承认,另一个错误,他在这种情况下失踪了。我还在这里为他添加了解决方案。:-)老实说,我不完全理解这样的疑问。如何访问列\u true或列2\u true?这些几乎成为列名了吗?是的,它将成为列名(虚拟)。访问它们的方式与访问其他列(id、$column、$column2)的方式相同。F.e.$column_true=mysql_result($result,0,'column_true');或者您可以使用mysql\u fetch\u assoc将所有选定的列关联到一个数组中。谢谢大家,一切都很好。唯一的问题是当没有匹配时,它会抛出一个错误。有什么想法吗?