SQL-запрос не отображает первый результат? - PullRequest
2 голосов
/ 31 марта 2011

Я пытаюсь динамически создать навигационное меню на моей странице php.

У меня есть запрос на создание списка активных страниц, но по какой-то причине первый результат никогда не показывает

$menu = mysql_query("SELECT link FROM myTable WHERE active_page='y' ORDER BY menu_order");
$menulist = mysql_fetch_array($menu);

  while($menulist = mysql_fetch_array($menu))
  {
  $themenu = $themenu . "<li><a href='#'>" . $menulist['link'] . "</a></li>";
  }

  $echo $themenu;

возвращает

пункт 2
пункт 3
позиция 4
...

Любые идеи, почему это может быть

Ответы [ 4 ]

6 голосов
/ 31 марта 2011

Удалить

$menulist = mysql_fetch_array($menu);

Этот посторонний вызов извлекает первую запись, но вы ничего не делаете с ним, как в цикле where.

2 голосов
/ 31 марта 2011

Не отображается первый элемент, потому что вы выбираете дважды, прежде чем что-либо отображать ...

$menu = mysql_query("SELECT link FROM myTable WHERE active_page='y' ORDER BY menu_order");

  while($menulist = mysql_fetch_array($menu))
  {
  $themenu = $themenu . "<li><a href='#'>" . $menulist['link'] . "</a></li>";
  }

  $echo $themenu;
1 голос
/ 31 марта 2011

Вы должны сбросить

$menulist = mysql_fetch_array($menu);

Это перемещает курсор на один шаг вперед и эффективно пропускает первую строку.

Вы также должны сбросить $ до вашего echo.

0 голосов
/ 31 марта 2011

Пропускается 1-й элемент, потому что вы вызываете mysql_fetch_array($menu) перед циклом while.

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