Проблемы с положением курсора при запуске двух последовательных циклов while

0

Как "переместить" позицию курсора pg_fetch_row, чтобы начать с первой строки, если вы хотите дважды запустить один и тот же результирующий набор?

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "An error occurred.\n";
  exit;
}

while ($row = pg_fetch_row($result)) {
  echo "Author: $row[0]  E-mail: $row[1]";
  echo "<br />\n";
}

while ($row = pg_fetch_row($result)) {     // <---- THIS WILL ALWAYS SHOW NOTHING AS IT DOESN'T START FROM the first row (0)
  echo "Author: $row[0]  E-mail: $row[1]";
  echo "<br />\n";
}
Теги:

1 ответ

0
Лучший ответ

Использовать pg_result_seek() http://php.net/manual/en/function.pg-result-seek.php

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "An error occurred.\n";
  exit;
}

while ($row = pg_fetch_row($result)) {
  echo "Author: $row[0]  E-mail: $row[1]";
  echo "<br />\n";
}

pg_result_seek($result, 0);

while ($row = pg_fetch_row($result)) {
  echo "Author: $row[0]  E-mail: $row[1]";
  echo "<br />\n";
}
  • 1
    прохлада. Благодарю.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню