2015-10-17 42 views
2

嗨,我在我的網站上發佈了一個頁面,用於在我的數據庫中查找任務。PHP/SQL從DB中選擇ID列表並在查詢中使用它

我現在使用的方法,它的工作,但我必須每次更新它。

$demande = "SELECT * FROM quest_quest WHERE id IN (584,585,586,587,589,599,601,617,608,615,616) LIMIT ".(($cPage-1)*$perPage).",$perPage"; 

,而不是我想查詢我的數據庫,並使用ID在我的查詢

我有一個標籤識別和IDquest一個表,我想進行查詢,以容納所有questid,並用它在我的查詢

實施例:

$questsfind = mysql_query("SELECT * FROM `quest_statetag` WHERE idTag ='8'"); 

我想有一個這樣的變量(221,587,1155,1255,5585)

$demande = "SELECT * FROM quest_quest WHERE id IN ('".$questsfind."') LIMIT ".(($cPage-1)*$perPage).",$perPage"; 

注:Sry基因,我的英語它不是我的母語:S

+0

http://stackoverflow.com/a/1586650/3166303 – leeor

回答

2

不知道如果我理解這個問題,但我相信你正在尋找持有一串ID的變量中(從查詢)然後創建另一個查詢?

$first = mysql_query("SELECT * FROM quest_quest WHERE id IN (1,2,3,4)"); 

if(! $first) 
    die('Something went wrong...'); 

$ids = array(); 

while($row = mysql_fetch_assoc($first)) { 
    $ids[] = $row['id']; 
} 

$query_ids = implode(',', $ids); 

$second = mysql_query("SELECT * FROM quest_statetag WHERE idTag IN ($query_ids)"); 

希望幫助...

+0

我如何查詢我的數據庫有陣列中的所有ID? $ TagQueryAray0 = mysql_query(「SELECT * FROM'quest_statetag' WHERE idTag ='8'」); 這隻會返回一個ID,通常結果應該給我25個ID和更多 – Nicecube

+0

不確定你的意思。你是否試圖將ID數組保存到數據庫中?我發佈的答案基本上會返回任何結果與其中一個ID ... – Chris

+0

$ TagQueryAray0 = array(); \t \t $ TagQueryAray0 = mysql_query(「SELECT * FROM'quest_statetag' WHERE idTag ='8'」); \t \t $ query_ids = implode(',',$ TagQueryAray0); (「SELECT * FROM quest_quest WHERE id IN($ query_ids)」); – Nicecube

相關問題