Я пытаюсь отразить определенные элементы из моей таблицы новостей в статье. Сюда входят такие поля, как автор, заголовок, содержание и дата. На данный момент я могу только отобразить строку, и любая попытка отобразить элементы на самой странице либо встречает небольшие ошибки, либо ничего не выводит. Я осмотрелся и нашел только людей, у которых проблемы с простой распечаткой базы данных строк, что я уже могу сделать.
В основном, когда у меня есть Автор в моей статье, я хочу повторить автора из моей базы данных, и он будет отображаться рядом с Автором. Я не уверен, насколько это возможно, поскольку я еще ничего не нашел по этому поводу или я пропускаю это.
Вот мой текущий файл PHP, и я оставил в начальной части автора статьи, дату и заголовок.
<?php
/* Database connection settings */
$host = 'xxxxx';
$user = 'xxxxx';
$pass = 'xxxxx';
$db = 'xxxxx';
$dbconnect=mysqli_connect($host,$user,$pass,$db);
if ($dbconnect->connect_error) {
die("Database connection failed: " . $dbconnect->connect_error);
}
$query = mysqli_query($dbconnect, "SELECT * FROM news WHERE news_Id = 1")
or die (mysqli_errr($dbconnect));
while ($row = mysqli_fetch_array($query)) {
echo
"<tr>
<td>{$row['headline']}</td>
<td>{$row['content']}</td>
<td>{$row['author']}</td>
<td>{$row['date']}</td>
</tr>\n";
}
?>
<div class = "container-fluid bg">
<div class = "row">
<div class = "col-md-1"></div>
<div class = "col-md-10">
<div class = "container">
<div class = "row mb-2">
<div class = "col-md-12">
<div class = "card">
<div class = "card-body">
<div class = "row">
<div class = "col-md-12">
<div class = "news-title">
<h2><?php echo $row['headline']; ?></h2>
</div>
<div class = "news-cats">
<ul class = "list-unstyled list-inline mb-1">
<li class = "list-inline-item">
<i class = "fa fa-folder-o text-danger"></i>
<a href = "#"><small>Author:</small> </a>
</li>
<li class = "list-inline-item">
<i class = "fa fa-folder-o text-danger"></i>
<a href = "#"><small>Posted:</small></a>
</li>
</ul>
</div>
<hr>
Ваш запрос возвращает только одну строку?
Да @Nick, он возвращает только одну строку, чего я и хочу, но я хочу на самом деле отображать данные, такие как заголовок, автор и т. д., во всем моем html. Вот так <h2><?php echo $row['headline']; ?></h2>.
Вы просто распечатываете результат, но у вас нет этикетки. Вы можете добавить его следующим образом:
while ($row = mysqli_fetch_array($query)) {
echo
"<tr>
<td>Headline: {$row['headline']}</td>
<td>Content: {$row['content']}</td>
<td>Author: {$row['author']}</td>
<td>Date: {$row['date']}</td>
</tr>\n";
}
Привет, спасибо за ответ. Я пытаюсь повторить эти данные в html. Это был просто пример того, что я сделал до сих пор. Например, если вы прокрутите вниз до <div class = "news-title"> и посмотрите на теги <h2>, я бы хотел, чтобы заголовок отображался там.
Поскольку ваш запрос возвращает только одну строку, цикл while
не подходит для выборки данных, так как в конце цикла $row
останется как значение false
, что делает любую попытку доступа, например. $row['headline']
провал. Измените свою петлю while
while ($row = mysqli_fetch_array($query)) {
к простому заданию:
$row = mysqli_fetch_array($query) or die(mysqli_error($dbconnect));
Обратите внимание, что у вас есть опечатка ранее в вашем коде,
or die (mysqli_errr($dbconnect));
должно быть
or die (mysqli_error($dbconnect));
Это кажется довольно простым, что вы пробовали? Как насчет
if
?