“正确”循环(我的)SQL响应

时间:2015-03-25 12:50:44

标签: php mysql associative-array

我有一个为我做MySQL的东西。 我在MySQL表中有1到n行,想要查询特定结果。

要查询表格,我现在可以使用

$db->select('tablename', '*');
$res = $db->Result()

将结果作为关联数组。

现在,如果我想循环,我必须检查是否有一个或多个结果,然后显示一个结果或循环结果。

这会增加我的代码,我想找到一种结合两种结果的方法。

目前,我正在做这样的事情:

if(is_array($res[0]){
    //we have more than one result
    foreach($res as $something)
    {
        //do stuff here
    }
}
else
{
    //do the same stuff as above here but now with other variables since $something is only filled in the foreach loop
}

现在如上所述,我很乐意将这两者结合起来,只有一段代码来显示结果(或者进一步使用它们)

2 个答案:

答案 0 :(得分:1)

将输入数据结构更改为循环所需的格式,然后在循环中迭代它:

if(!is_array($res[0]){
    $res[0] = [$res[0]];
}

foreach($res as $something)
{
    //do stuff here
}

答案 1 :(得分:0)

我建议您切换到一些广泛开发的类,如PDO(http://php.net/manual/en/book.pdo.php),或者只是在Result方法中添加一个检查,如果没有结果,则返回一个空数组

function Result() {
    // stuff to fetch and fill $arr;
    return (is_array($arr[0])) $arr : array();
}