2013-10-17 30 views
0

我有一个简单的搜索查询,其工作只是正常找到相匹配的多个列的搜索查询

$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? 

然而,当有一个particulat栏比赛我希望能够找出其中的列列名已匹配。

这可能吗?

+0

有没有像这样的工作适合你? 'if($ column == $ result [$ column1])echo“Column 1 was matched”;' –

+0

谢谢,但这似乎不起作用。 – Aparistar

+0

Francisco Presencia,不能工作,因为$ result是资源,而不是数组。他从$ result获取数据,使用mysql_result或mysql_fetch_assoc(或mysql_fetch_array),请参阅下面的答案。 – Legionar

回答

2

是,只需编辑您的查询是这样的:

$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个数据字段。 if column_true = 1,第一列条件为真 如果column2_true = 1,第二列条件为true

如果两者均为1,那么列和列2都与您的条件匹配。

Btw:你的查询有错误,缺少()或OR条件

+0

“你在查询中有错误”?没有退缩只是因为它让我笑,只是答案的一半。 –

+1

I ment,另一个错误,他在状态中失踪()。我也为他添加了解决方案。 :-) – Legionar

+0

我会老实说,我不完全理解这样的查询。我如何访问column_true或column2_true?这些几乎成为列名吗? – Aparistar