2011-11-23 24 views
1

我在我的網站上有一個頁面名稱的數據庫,我想遍歷查詢並輸出每個這些頁面名稱。查詢結果中的最後一項 - PHP

// 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++; 
    } 

我想在那裏我已經使用PDO做我的查詢最後結果不是分隔符,而根據我見過的很多例子,這個代碼應該是的工作。但是,無論結果的數量如何,「count($ sitemenu)」變量始終設置爲「1」。因此,沒有真正發生。我試圖用PDO不可能的代碼?

+2

可能愚蠢的問題:你確定$ sitemenu是一個PHP數組? – Helen

+0

不是'可能愚蠢',而是人們可能會問的最明智的問題。 –

+0

請注意,如果僅使用一個表格,則不需要解決表名稱問題。我縮短了代碼,使其更具可讀性。 –

回答

0

您忘記了一項必需的操作。
除了查詢執行之外,您必須使用fetchAll()方法獲得實際結果。
你將得到你想要的數組。

所以,實際上您的問題與標題中的問題無關,而是與基本的PDO使用相關。

而且缺乏調試當然。
由於您必須自己從評論中提問,並將問題簡化爲$sitemenu內容。

+0

當然......總是有點小東西!非常感謝! – bnrup