查询结果中的最后一项 - PHP

时间:2011-11-23 09:12:54

标签: php foreach pdo

我的网站上有一个页面名称数据库,我想循环查询并输出每个页面名称。我使用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++;
    }

我希望在最后一个结果之后没有分隔符,并且根据我见过的许多示例,此代码应该工作。但是,无论结果数量如何,“count($ sitemenu)”变量始终设置为“1”。因此,没有真正发生。是我用PDO尝试不可能的代码吗?

1 个答案:

答案 0 :(得分:0)

你忘记了一项必要的操作 除了查询执行之外,您还必须使用fetchAll()方法获得实际结果 你会得到你想要的阵列。

所以,实际上你的问题与标题中的问题无关,而是与基本的PDO用法有关。

当然缺乏调试。
因为您必须自己提出评论中的问题,并将问题归结为$sitemenu内容。