Получить следующее значение оператора MySQL внутри пока - PullRequest
0 голосов
/ 24 октября 2011

Я помещаю значения из базы данных в какое-то время в массив. Теперь я не хочу проверять - в то же время - следующий ли идентификатор такой же, как только что выданный. Если это не моя мысль, это поместить идентификатор в массив.

Есть ли возможность сделать это? Чтобы проверить следующий вывод запроса через некоторое время?

$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"

}

Привет

1 Ответ

0 голосов
/ 24 октября 2011

Обычно я просто сохраняю самый последний идентификатор в переменной и проверяю его в верхней части цикла 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
}

Если вам действительно нужно изменить поведение для конкретной строки в соответствии с тем, что происходит в строке next , я рекомендую вам на самом деле повлиять на это изменение в после прогона цикл, когда вы проверяете новый идентификатор строки против старого.

В качестве альтернативы, вы можете циклически просматривать набор результатов дважды: первый раз помещая строки в двумерный массив, чтобы можно было легко ссылаться на строки разностей по номерам. Затем, во второй раз, вы фактически делаете то, что хотели в первую очередь, и можете ссылаться на «следующий ряд», используя [$i + 1] вместо [$i]. (Конечно, тогда вы должны быть осторожны с последней строкой, потому что тогда смещение [$i + 1] не работает.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...