0

这将如何以最短的方式循环:

$db->setQuery("SELECT val1 FROM table1 WHERE val2 = 'AAA'");
$row1 = $db->loadObjectList();
$var1 = $row1[0];

$db->setQuery("SELECT val3 FROM table1 WHERE val2 = 'AAA'");
$row2 = $db->loadObjectList();
$var2 = $row2[0];

$db->setQuery("SELECT val1 FROM table1 WHERE val2 = 'BBB'");
$row3 = $db->loadObjectList();
$var3 = $row3[0];

$db->setQuery("SELECT val3 FROM table1 WHERE val2 = 'BBB'");
$row4 = $db->loadObjectList();
$var4 = $row4[0];

...

$db->setQuery("SELECT val1 FROM table1 WHERE val2 = 'AAA'");
$row997 = $db->loadObjectList();
$var997 = $row997[0];

$db->setQuery("SELECT val3 FROM table1 WHERE val2 = 'AAA'");
$row998 = $db->loadObjectList();
$var998 = $row998[0];

$db->setQuery("SELECT val1 FROM table1 WHERE val2 = 'BBB'");
$row999 = $db->loadObjectList();
$var999 = $row999[0];

$db->setQuery("SELECT val3 FROM table1 WHERE val2 = 'BBB'");
$row1000 = $db->loadObjectList();
$var1000 = $row1000[0];

我有 1000 个这样的查询,我坚持围绕它们设置一个循环。

另外,我是否需要一个一个地声明所有全局变量,即 $var1, $var2, ... var1000 或者这也可以循环?

4

2 回答 2

1

创建查询数组并像这样迭代

$var = array(); // storing result in this array
$array_qry = array("SELECT val1 FROM table1 WHERE val2 = 'AAA'","SELECT val3 FROM table1 WHERE val2 = 'AAA'");// array of query
foreach($array_qry as $qry) {
    $db->setQuery($qry);
    $row = $db->loadObjectList();
    $var[] = $row[0];
}

然后迭代$var以获取存储的值

于 2013-05-05T11:12:22.567 回答
0
$resultArray = 数组();
$queryParam = array('AAA', 'BBB', 'CCC'); // 添加查询参数值
$fieldArray = array('val1', 'val3','val4') // 添加字段属性
foreach($queryParam as $qryPrm) {
    foreach($fieldArray 作为 $field) {
        $sql=“选择”。$字段。" from mytable where val2 = '".$qryPrm."'";
        $db->setQuery($qry);
        $row = $db->loadObjectList();
        $resultArray[] = $row[0];
    }
}   

这对你有用吗?

于 2013-05-05T11:38:05.627 回答