如何将查询的第一个结果与其他结果分开?

时间:2016-01-10 02:58:32

标签: php mysql arrays pdo

我想将第一个PDO结果数组与其他数组分开。这是我的尝试:

while()

第一个fetchAll();在我的代码中执行(上面的代码总是只打印查询的第一个结果)。那么,我该如何解决呢?

注意:我不想使用{{1}}。

3 个答案:

答案 0 :(得分:5)

尝试类似:

$results = $stm1->fetch();
print_r($results);

while($results = $stm1->fetch()){
    print_r($results);
}

你实际上并不需要循环来获取第一个元素,然后你可以继续使用曾经是第二个循环的迭代。

的问题
while($results = $stm1->fetch() and $iterator == 1){

如果结果集中有一个或多个结果,您将始终两次调用$stm1->fetch():第一次进入循环,然后第二次进入在您实际检查($iterator == 1)不再为真之前的第二次迭代。

如果结果集中只有两个结果,那么将在第二个循环中显示从未输入(因为fetch不会有任何结果)。

答案 1 :(得分:3)

你不需要一个while循环,因为你只想获取你不需要while循环的1行,只需这样做:

for ($i=0; $i < 10; $i++) { 
    $randomSite = "http://my.site/paste/" . hash('adler32', $i);
} 

然后你就可以像往常一样把你的while循环。

答案 2 :(得分:1)

$result = $stmt->fetch(PDO::FETCH_ASSOC);

将仅提供查询执行的第一行。即使你使用它只会产生第一行。

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

将提供查询执行的所有记录。