如何从数据库中回显特定元素

时间:2019-04-10 22:36:10

标签: php

我试图在整篇文章中回应新闻表中的某些元素。这涉及诸如作者,标题,内容和日期等字段。目前,我只能回显该行,并且任何回显页面本身中元素的尝试都会遇到小错误,或者什么都不输出。我四处看看,只发现人们在仅打印出我已经可以完成的行数据库时遇到了问题。

基本上,当我在文章中有作者时,我想从数据库中回显作者,它会显示在作者旁边。我不确定这有什么可能,因为我还没有找到任何东西,或者我忽略了它。

这是我当前的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>

2 个答案:

答案 0 :(得分:2)

您只是在打印结果,但没有标签。您可以像这样添加一个:

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";

}

答案 1 :(得分:2)

由于查询仅返回一行,因此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));