Я пытаюсь выяснить, где я ошибся с моим кодом.
Я построил свою панель навигации с php в неупорядоченном списке панели навигации, чтобы получить элементы меню из таблицы SQL с именем «menu» из базы данных с именем «shop», но безрезультатно.
У меня даже есть print_r, чтобы показать мне, что мой ресурс работает, но по какой-то причине весь код не создает пункты меню так, как они написаны.
Это код:
<?php
$menu = [];
mysql_connect('localhost', 'root', '');
mysql_select_db('shop');
$result= mysql_query("SELECT * FROM menu");
if ($result && mysql_num_rows($result)>0){
while($row = mysql_fetch_assoc($result)){
$menu[] = $row;
}
}
echo '<pre>';
$error= print_r($menu);
$error = '' ;
echo '</pre>';
?>
<!DOCTYPE html>
<html>
<head>
<link href="_CSS/style.css" rel="stylesheet" type="text/css"/>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div class="site-wrapper">
<div class="header">
<div class="navbar">
<ul>
<li><a href="./">Home</a></li>
<?php if(count($menu) >0) : ?>
<?php foreach ($menu as $row) : ?>
<li><a href="#"><?php $row = ['link']; ?></a></li>
<?php endforeach; ?>
<?php endif; ?>
</ul>
</div>
<div class="member">
<ul>
<li><a href="../login.php"></a>Login</li>
<li><a href="../Register.php"></a>Register</li>
</ul>
</div>
</div>
</div>
Результат, к сожалению, выглядит так:
Ваша проблема заключается в следующем:
<?php $row = ['link']; ?>
Наверное, должно быть так:
<?php echo $row['link']; ?>
Может быть, вы запутались, пытаясь сделать это:
<?= $row['link']?>
Ошибка 1:
Вы использовали
$row = ['link'];
Где вы получите эту ошибку Notice: Array to string conversion in ..
Так что вам нужно иметь $row['link'];
Ошибка 2:
Вам необходимо вывести контент, используя echo
<li><a href="#"><?php echo $row['link']; ?></a></li>
Предупреждение: Не использовать mysql_*
функционирует как есть амортизироваться вместо этого используйте mysqli или PDO для более безопасной работы!