php循环输出数组里面的内容

$sql = "SELECT id,content,pic1,pic2,pic3,pic4,display FROM ".MX_TABLEPRE."sexgame WHERE orientation='$orientation' and style='$style'";
$res = $db->query($sql);
$arr = array();
while ($row = $db->fetchRow($res))
{
$arr[$row['id']]['id'] = $row['id'];
$arr[$row['id']]['content'] = $row['content'];
$arr[$row['id']]['pic1'] = $row['pic1'];
$arr[$row['id']]['pic2'] = $row['pic2'];
$arr[$row['id']]['pic3'] = $row['pic3'];
$arr[$row['id']]['pic4'] = $row['pic4'];
$arr[$row['id']]['display'] = $row['display'];
$sql_tool = "SELECT gt.id,sexgameid,toolname FROM ".MX_TABLEPRE."gametoolrule as gt,".MX_TABLEPRE."gametool as gm WHERE gt.toolid=gm.id and gt.sexgameid='".$row['id']."'";
$tool_res = $db->getAll($sql_tool);
foreach($tool_res as $key=>$value)
{
$arrs[] = $value;
}
$arr[$row['id']]['toolid'] = $arrs;
}
各位,帮忙看看这个位置要怎么修改,第二条数据库的道具有一条是第一条的,怎么才能把它去掉,帮忙看下,感激不尽

$sql = "SELECT id,content,pic1,pic2,pic3,pic4,display FROM ".MX_TABLEPRE."sexgame WHERE orientation='$orientation' and style='$style'"; 
$res = $db->query($sql);
$arr = array();
while ($row = $db->fetchRow($res)){
    $arr[$row['id']] = $row;
    $sql_tool = "SELECT gt.id,sexgameid,toolname FROM ".MX_TABLEPRE."gametoolrule as gt,".MX_TABLEPRE."gametool as gm WHERE gt.toolid=gm.id and gt.sexgameid='".$row['id']."'"; 
    $tool_res = $db->getAll($sql_tool);
    $arrs = array();//这行一定要加, 不然循环下去, $arrs会前面所有结果集的总集, 而不是针对当前循环的 $row['id']
    foreach($tool_res as $key => $value) {
        $arrs[] = $value;
    }
    $arr[$row['id']]['toolid'] = $arrs;
}

以上, 试一下吧,

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-13
这个你应该SQL语句欧诺个过滤掉 ,而不应该遍历数组来过滤
相似回答