2016-07-07 8 views
0

私は現在、PHPとデータベース(ブートストラップ、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 
} 
関連する問題