2016-07-07 88 views
0

我目前正在重新設計我的網站以使用PHP和數據庫(與Bootstrap,CSS和HTML相對),我目前遇到的問題是從我的數據庫中獲取鏈接並將其放入我的導航菜單。如果我最終決定更改它們,我更願意使用數據庫來防止重新輸入所有鏈接。問題是我似乎無法在這裏得到任何HTML輸出,我不知道我做錯了什麼。我對PHP相當陌生,所以可能會有些微不足道的東西,我只是沒有理解這個概念,但是目前這段代碼只在頁面上顯示<ul>的項目符號點。我的數據庫和代碼如下。數據庫被確認能夠連接。從數據庫創建HTML導航PHP

enter image description here

test.php的:

require_once('config.php'); 
$conn = new mysqli($servername, $username, $password, $database); 

/* check connection */ 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

$query = "SELECT link_title, link_url FROM links ORDER BY link_id"; 

if ($result = $conn->query($query)) { 

    echo '<ul class="nav navbar-nav navbar-right">'; 
    foreach($result as $link) { 
     echo '<li>'; 
     echo "<a href='{$link->link_url}'>{$link->link_title}</a>\n"; 
     echo '</li>'; 
    } 
    echo '</ul>'; 

    /* free result set */ 
    $result->close(); 
} 

/* close connection */ 
$conn->close(); 
+2

'$ result'是mysqli的結果對象。你不能'foreach'它。它不是一個數組。它應該更像'while($ link = $ result-> fetchRow()){...}' –

回答

1
if ($result = $conn->query($query)) { 

    echo '<ul class="nav navbar-nav navbar-right">'; 
    while($link = $result->fetch_object()) { 
     echo '<li>'; 
     echo "<a href='{$link->link_url}'>{$link->link_title}</a>\n"; 
     echo '</li>'; 
    } 
    echo '</ul>'; 

/* free result set */ 
$result->free(); // there is no method "close" for result -> http://fi2.php.net/manual/en/class.mysqli-result.php 
}