PHP MySQL 查询与多个参数,并获取每个单独的结果


php mysql query with multiple params and get individual results per

我试图想出一种方法来形成一个查询,我可以查询我需要的每个参数,并按参数返回结果。我尝试了 AND/OR 的组合,但没有得到预期的结果。

我想做的查询的基础是

select fb_wall, fb_checkin, phone 
from member_prefs where 
memeberid = 21 
OR memeberid = 22 
OR memeberid = 23 
OR memeberid = 24

问题是,当其中一个成员 id 没有数据并保持查询继续时,我需要忽略(或者捕获 id,所以如果找到一个,我可以在事后在另一个查询中添加它的行,但仍然保持查询)。

现在我的虚拟数据是 3 个成员 ID 中的 4 个有数据,如果我在查询中这样做,查询就会停止并且没有结果。好像我做OR一样,我似乎只返回一组数据。

我想做的是在查询后构建一个数组来传递,看起来像

array(
   [0] array("memberid"=>21, "fb_wall"=>0, "fb_checkin"=>1, "phone"=>0),
   [1] array("memberid"=>22, "fb_wall"=>1, "fb_checkin"=>0, "phone"=>1),
   [2] array("memberid"=>24, "fb_wall"=>1, "fb_checkin"=>1, "phone"=>1)
)

只是似乎在形成初始查询时遇到了一点问题,就像我说的那样,如果在这种情况下我可以传递 23 个其他位置,这样我就可以在同一个表的 id 上运行一个插入命令,这将很棒,但不需要这里的所有需求。

怎么样:

//parameter data
$members = array(
    22 => null,
    23 => null,
    24 => null,
    25 => null
);
//make a comma separated list of ids
$ids = implode(',', array_keys($members));
//generate query text
$sql = '
    select memberid, fb_wall, fb_checkin, phone 
    from   member_prefs 
    where  memberid in ('.$ids.')
';
$result = mysql_query($sql);
while ($row = mysql_fetch_row($result)) {
    $members[$row[0]] = $row;    
}

从带有相关键的数组开始,并在读取行时替换元素。

$ares = array(21 => null, 22 => null, 23 => null, 24 => null);