Последний элемент в результатах запроса - PHP - PullRequest
1 голос
/ 23 ноября 2011

У меня есть база данных имен страниц на моем сайте, и я хотел бы просмотреть запрос и вывести каждое из этих имен страниц.Я выполнил свой запрос, используя PDO:

// Site Menu Items
try {
  $mds_system1 = new PDO('mysql:dbname=mds_system;host=127.0.0.1', 'root', '');
} catch (PDOException $ex) {
  echo 'Connection failed: ' . $ex->getMessage();
}

$sql = "SELECT longName, shortName, `position`, standalone FROM `site-menu`";
$sitemenu = $mds_system1->query($sql);

Затем я перебираю запрос так (часть CMS для редактирования страниц на сайте):

    $n=1;
    foreach ($sitemenu as $item) {
        echo "<a href='?page=edit&amp;edit=".$item['shortName']."' target='_self'>";

        if ($n==count($sitemenu)) {
            echo $item['longName']."</a><br />";
        }
        else {
            echo $item['longName']."</a>&nbsp;|&nbsp;";
        }
        $n++;
    }

I 'Мне бы хотелось, чтобы после последнего результата не было разделителя, и, согласно множеству примеров, которые я видел, этот код должен работать.Однако переменная count ($ sitemenu) всегда имеет значение 1, независимо от количества результатов.Поэтому на самом деле ничего не происходит.Код, который я пытаюсь использовать, невозможен с помощью PDO?

1 Ответ

0 голосов
/ 23 ноября 2011

вы забыли одну обязательную операцию.
кроме просто выполнения запроса, вы должны получить фактические результаты, используя метод fetchAll().
И вы получите желаемый массив.

Итак, на самом деле ваш вопрос не имеет ничего общего с проблемой в названии, а скорее связан с основным использованием PDO.

И отсутствие отладки конечно.
Поскольку вы должны сами задать вопрос из комментариев и свести проблему к содержанию $sitemenu.

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