2014-02-08 56 views
0

如何檢查表是否包含特定行?我有一個表安排如下:檢查MySql表的行

Follower  | Following  | Time 
[email protected] | [email protected] | 2014-02-07 19:05:58 
[email protected] | [email protected] | 2014-03-12 09:03:12 

說我是史蒂夫,我想「添加」按鈕,文本到現在顯示「刪除」。爲了做到這一點,它必須檢查表格,看看一行是否同時包含「[email protected]」和「[email protected]」。我怎麼做?先謝謝你。

更新1: 我試過如下:

$scan = $results[$counter]; 
$follow_email = mysql_query("SELECT email FROM members WHERE name = '$scan'"); 
$result = mysql_query("SELECT COUNT(*) cnt FROM follow WHERE follower = '$searcher_email' AND following = '$follow_email'"); 
if ($row['cnt'] == 0) { 
$text212 = "Add"; 
} 

if ($row['cnt'] == 1) { 
$text212 = "Remove"; 
} 
+0

使用'WHERE'條款。 I.e:'Where Follower ='[email protected]'以下='jane @ gmail.com'' –

+1

是的,我明白了。我正在測試它。 @ Fred-ii- – Lite20

+0

好的。設置查詢後,如何評估結果以查看該行是否存在? @ Fred-ii- – Lite20

回答

1

執行查詢,如:

SELECT COUNT(*) cnt 
FROM Followers 
WHERE Follower = '[email protected]' AND Following = '[email protected]' 

檢索該行和測試$row['cnt']。如果它是0,則顯示Add;如果是1,則顯示Remove

$scan = mysql_real_escape_string($results[$counter]); 
$email_result = mysql_query("SELECT email FROM members WHERE name = '$scan'"); 
$email_row = mysql_fetch_assoc($email_result); 
$follow_email = $email_row['email']; 
$result = mysql_query("SELECT COUNT(*) cnt FROM follow WHERE follower = '$searcher_email' AND following = '$follow_email'"); 
$row = mysql_fetch_assoc($result); 
if ($row['cnt'] == 0) { 
    $text212 = "Add"; 
} else { 
    $text212 = "Remove"; 
} 
+0

這不適合我。我在我的問題中將我的實現粘貼爲更新1.你能幫我發現我的錯誤嗎? @Barmar – Lite20

+0

你錯過了對'mysql_fetch_assoc()'的調用來獲得你的查詢結果。 – Barmar

+0

嘗試閱讀關於如何從PHP使用MySQL的教程,您似乎對此非常困惑。 – Barmar

0
SELECT EXISTS (SELECT NULL FROM Followers 
       WHERE Follower = '[email protected]' AND Following = '[email protected]') 
+0

你可以給我整個命令行嗎?試圖弄清楚如何實現上面提到的,我遇到了一些麻煩。 @abl – Lite20

+0

請包括您的代碼的作用以及它如何回答問題的解釋。如果你得到一個代碼片段作爲答案,你可能不知道如何處理它。回答應該給出關於如何調試和解決他們的問題的OP指導。指出你的代碼背後的想法,對於理解這個問題以及應用或修改你的解決方案有很大的幫助。 – Palec

+0

我寫的只是SQL查詢,它將返回表中是否包含具有指示值的行。如果您希望程序針對數據庫執行此查詢,則必須使用您的語言提供的命令。我怕我不熟悉PHP,所以我無法幫助你。 @ Lite20 – abl