2014-04-21 43 views
-1

我是MySQL的新手,所以我在這裏有點困惑。我現在正在做的是調用一個Mysql查詢,從查詢匹配關鍵字的表中提取數據。該代碼是在這裏:如何在每個循環中使用關鍵字從MySQL獲取新結果?

public function fetch_tags($tag) { 
    global $pdo; 

    $query = $pdo->prepare("SELECT * FROM `articles` WHERE `article_tags` LIKE '%$tag%' OR `article_content` LIKE '%$tag%'"); 

    $query->execute(); 

    return $query->fetch(); 
} 

的問題是說,在第一次通過關鍵字是「邁克爾」,再下一個是「Dekstra,」這兩個將返回完全相同的行,因爲他們是同一個人的名字和姓氏。雖然我不想兩次獲取相同的結果。我該如何做到這一點,以便一旦獲取了特定的結果,下一個查詢就不會再次得到相同的結果。他們需要每一次都有所不同。我希望他們從最新到最舊。

任何幫助,非常感謝。我覺得很失落。

+0

請告訴我們更多關於這裏的總體目標,目前還不清楚爲什麼你使用循環。您可以(也應該)只用一個查詢來獲取一組有序的行。 – Air

+0

因此,無論如何,我可以添加一個參數,告訴它不要獲取以前得到的結果? – Vimzy

+0

定義「以前得到」的結果。 – Air

回答

0

那麼您可以添加一個$blacklist參數,該參數將包含已獲取的行的ID數組並將其添加到您的查詢中:WHERE id NOT IN (1,2,3)

+0

你能擴展一下嗎?我已經使用MySQL好幾天了。我明白你在說什麼,但那種模樣會怎樣? – Vimzy

+0

@Vimzy我從來沒有使用本地的PDO,所以我不能幫助你使用它:(但是,如果我正在創建標準的SQL查詢,我會使用類似於'「的地方id不在(」.implode(「,」,$ blacklist )。 「)」' –

相關問題