0

私は2つの配列を持っています:

$armortype = array(5,8);

$slotarray = array(1,2,3,5,6,7,8,9,10,11,11,12,16);

これら 2 つを 1 つの foreach ループに結合するにはどうすればよいですか? 現時点でのコードは次のとおりです。

foreach($slotarray as $slot)
{
    foreach($armortype as $armor)
        $itempack = mysql_query("SELECT * FROM db WHERE ItemLevel BETWEEN $formlevel1 AND $formlevel2 AND InventoryType =$slot AND Quality<5 AND AllowableClass in ('$formclass', '-1','2047','32767') AND Material=$armor ORDER BY RAND() LIMIT 1");
    }
}

$armor の値が正しく表示されません。

4

1 に答える 1

0
$itempack = mysql_query("SELECT * 
    FROM db
    WHERE ItemLevel BETWEEN $formlevel1 AND $formlevel2
        AND InventoryType = in ('". implode("', '", $slotarray) ."')
        AND Quality<5
        AND AllowableClass in ('$formclass', '-1','2047','32767')
        AND Material = in ('". implode("', '", $armortype) ."')
    ORDER BY RAND()
    LIMIT 1");

それはそれを行う必要があります。両方のループの代わりに配置します。数十のクエリではなく、1 つのクエリのみを実行するだけです...

于 2013-08-14T22:56:54.107 に答える