Php 获取MySQL语句的下一个值

Php 获取MySQL语句的下一个值,php,mysql,arrays,while-loop,Php,Mysql,Arrays,While Loop,我在一段时间内将数据库中的值放入一个数组中。现在我不想在while内检查下一个ID是否与刚才输出的相同。如果不是,我的想法是将ID放入数组中 有没有可能这样做?要在一段时间内检查查询的下一个输出 $result = mysql_query("SELECT * FROM $postmeta ORDER BY post_id ASC") or die(mysql_error()); $basArray = array(); while($row = mysql_fetch_array(

我在一段时间内将数据库中的值放入一个数组中。现在我不想在while内检查下一个ID是否与刚才输出的相同。如果不是,我的想法是将ID放入数组中

有没有可能这样做?要在一段时间内检查查询的下一个输出

$result = mysql_query("SELECT * FROM $postmeta ORDER BY post_id ASC") 
or die(mysql_error());

$basArray = array();    

while($row = mysql_fetch_array( $result )) {

    $innerArray[$row['meta_key']] = $row['meta_value'];     
    $basArray[$row['post_id']] = $innerArray;
// Above post_id I want to check if it is the same as the "next coming"

}

问候语

我通常只将最新的ID存储在变量中,并在while循环的顶部进行检查。在伪代码中,如下所示:

$old_row_id = -1; // any value that can't legitimately appear
while ($row = fetch_array($result)) {
    if ($old_row_id == $row['id']) {
        // logic to follow if IDs are the same
    } else {
        // logic to follow if IDs are different
    }
    // logic to follow in either case, if any
    $old_row_id = $row['id']; // update variable for the next run through
}
如果您确实需要根据下一行中发生的情况更改特定行的行为,我建议您在下面的循环中实际执行该更改,当您检查新行ID与旧行ID时


或者,您可以在结果集中循环两次:第一次将行放入二维数组中,以便可以轻松地按编号引用不同的行。第二次,你实际上做了你想做的事情,你可以用[$i+1]而不是[$i]来引用下一行。当然,您必须小心最后一行,因为偏移量[$i+1]不起作用。

我在您的帮助下找到了解决方案。我使用了array_push函数。这段代码适合我:虽然$row=mysql\u fetch\u array$result{if$idArr!=$row['post\u id']{array\u push$basArray[$idArr],$idArr;}$innerray[$row['meta\u key']]=$row['meta\u value'];$basArray[$row['post\u id']]]=$innerray;$idArr=$row['post\u id']}