2016-07-07 1 views
0

Я сейчас перепроектирую свой сайт, чтобы использовать PHP и базы данных (в отличие от Bootstrap, CSS и HTML), и в настоящее время у меня возникают проблемы с захватом моих ссылок из моей базы данных и помещением их в мое навигационное меню , Я предпочитаю использовать базу данных, чтобы предотвратить необходимость повторного ввода всех ссылок, если я в конечном итоге решит их изменить. Проблема в том, что я не могу получить вывод HTML здесь, и я не уверен, что я делаю неправильно. Я довольно новичок в PHP, поэтому может быть что-то тривиальное, что я просто не понял концепцию, но в настоящее время этот код отображает только маркерную строку <ul> на странице. Моя база данных и код ниже. Подтверждена возможность подключения базы данных.Создание HTML Nav из базы данных 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 
}