2013-10-17 52 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