2011-05-14 47 views
3

我正在自動滾動成員.i有兩個mysql查詢,我想顯示有照片的成員和上次登錄時排序的成員。所以在第一盤我沒有任何問題,因爲我這樣做mysql查詢,其中有兩條子句

$sql=mysql_query("SELECT * 
        FROM accounts 
        WHERE avatar != '' 
       ORDER BY lastlogin DESC 
        LIMIT 50"); 

這工作正常。 但隨着用戶滾動並進入頁面的底部,我正試圖加載下一組50個用戶,通過上面所做的相同過濾來排序。 所以對於我所做的

$sql = mysql_query("SELECT * 
         FROM accounts 
        WHERE lastlogin < '$last_msg_id' 
        ORDER BY lastlogin DESC 
        LIMIT 50"); 

上面一個用於從上次登錄發現第51屆成員的最後一次登錄即ID的ID。現在我必須過濾那些有照片的成員:

$sql = mysql_query("SELECT * 
         FROM accounts 
        WHERE avatar != '' 
        ORDER BY lastlogin DESC 
        LIMIT 50"); 

請告訴我如何結合這兩個查詢,因爲我沒有成功。

+0

TJ的答案對你有幫助嗎?你對這裏收集到的答覆有任何反饋嗎? – 2011-05-31 23:55:42

回答

6

如果我正確理解你的問題,我想你只需要一個精心佈置的AND,像這樣:

SELECT * 
    FROM accounts 
    WHERE lastlogin < '$last_msg_id' 
    AND avatar != '' 
ORDER BY lastlogin desc limit 50 

這就是你想做什麼?

+1

+1:我就是這麼讀的。 – 2011-05-14 05:47:06

+0

我讀的方式不同:他想使用'limit x offset y'。 – 2011-05-14 09:27:45

+0

@Denis:這將是一個更好的方法,但他已經用他的'lastlogin <'$ last_msg_id''條款破解了它。問題是關於將該子句與'avatar'上的條件合併。 – 2011-05-31 23:55:09

-1

,如果你有任何這樣的查詢可以隨時打開phpMyAdmin的,並使用搜索標籤嘗試搜索...這樣你的查詢,自動生成無錯..

+0

如何用phpmysql來做到這一點。請告訴我有搜索選項卡,並告訴如何從phpmyadmin – 2011-05-14 06:09:08

+0

@sujit ...生成php vcode這個例子,以及每當你搜索的東西,它會自動生成輸出上方的相關sql查詢...你不必做任何額外的東西...... – Pawan 2011-05-20 18:31:30

+0

這應該是一個評論,Pawan,而不是一個答案。 – 2011-05-31 23:55:21

3

我想你想什麼do只是顯示第一個查詢的結果(帶有頭像的用戶列表),但是以每頁50個塊的形式顯示。

在這種情況下,你真正想要做的是使用LIMIT和2個參數。 (有關詳細信息,請參見MySQL SELECT syntax)。

當您使用帶兩個參數的LIMIT時,第一個是要開始的偏移量,第二個是最大記錄數。因此,舉例來說:

SELECT * FROM accounts LIMIT 0,50; # Retrieves users 1-50 
SELECT * FROM accounts LIMIT 50,50; # Retrieves users 51-100 
SELECT * FROM accounts LIMIT 100,50; # Retrieves users 101-150 
            # etc. 

如果這不是你的意思是做什麼,然後T.J.的回答(剛加入一個與有兩個WHERE子句)是要走的路!