【发布时间】:2012-01-04 14:13:03
【问题描述】:
我的网站上有一个页面名称数据库,我想循环查询并输出每个页面名称。我已经使用 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&edit=".$item['shortName']."' target='_self'>";
if ($n==count($sitemenu)) {
echo $item['longName']."</a><br />";
}
else {
echo $item['longName']."</a> | ";
}
$n++;
}
我希望在最后一个结果之后没有分隔符,根据我看到的许多示例,此代码应该有效。但是,“count($sitemenu)”变量始终设置为“1”,无论结果数量如何。因此,什么都没有发生。我尝试的代码是否无法使用 PDO?
【问题讨论】:
-
可能是个愚蠢的问题:你确定 $sitemenu 是一个 php 数组吗?
-
不是“可能很愚蠢”,而是人们可能会问的最明智的问题。
-
请注意,如果只使用一张表,则无需指定表名。我缩短了您的代码以使其更具可读性。