PHP / SQL从数据库中选择id列表并在查询中使用它


PHP / SQL Select list of id from DB and use it in query

嗨,我在我的网站上做了一个页面,在我的数据库中找到任务。

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

$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在我的查询

我有一个TagID和IDquest表,我想做一个查询保存所有的questiond和使用它在我的查询

的例子:

$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"; 

nb:对不起,我的英语不是我的母语:S

不确定我是否理解这个问题,但我相信你希望在一个变量(从查询)中保存一堆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)");

首先必须将关联数组转换为字符串

$questsfinds = implode(',', $questsfind);

然后你可以试试FIND_IN_SET方法

SELECT * FROM quest_quest WHERE FIND_IN_SET(id,'$questsfinds');