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

sta*_*ack 3 php mysql arrays pdo

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

$iterator = 1;
while($results = $stmt->fetch(PDO::FETCH_ASSOC) and $iterator == 1){
    /* I need just first row here */
    print_r($results);
    $iterator++;
}

while($results = $stmt->fetch(PDO::FETCH_ASSOC)){
    /* I need other rows here */
    print_r($results);
}
Run Code Online (Sandbox Code Playgroud)

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

注意:我不想用fetchAll();.

jba*_*ord 5

尝试类似的东西:

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

while($results = $stm1->fetch()){
    print_r($results);
}
Run Code Online (Sandbox Code Playgroud)

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

这个问题

while($results = $stm1->fetch() and $iterator == 1){
Run Code Online (Sandbox Code Playgroud)

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

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