在 html 中使用 php 显示数据库

Sep*_*Sep 0 php mysql mysqli

我正在尝试使用 php 在 HTML 文档中创建一个表,这是我的代码:

<p>Below is the table of all the books available: <br />

<table border="1" ><th>Book ID</th><th>Subject</th><th>Title</th><th>Print Edition</th><th>Condition</th><th>Asking Price</th>


<?php 
    $server= 'MYSERVER';
    $user = 'MYUSERNAME';
    $password = 'MYPASSWORD';
    $database = 'MYDBNAME';
    $mysqli = new mysqli('server', 'user', 'password', 'database');
    foreach ( $mysqli->query('SELECT user,host FROM mysql.user') as $row ) 
    {?>
    <tr><td><?php echo $res['ID'];?></td><td><?php echo $res['Subject'];?></td><td><?php echo $res['Title'];?></td><td><?php echo $res['PrintEdition'];?></td><td><?php echo $res['Cond'];?></td><td><?php echo $res['Price'];?></td></tr>
<?php } 
mysqli_close($mysqli);
?>
</table>

<br />
If you like to request any of these titles, Do the following:
Run Code Online (Sandbox Code Playgroud)

。。。。

然而,我似乎不确定发生了什么,但我在 Chrome 上得到了这个结果(这是我网页的实际屏幕截图):


下面是所有可用书籍的表格: query('SELECT * FROM Entry_database') as $row ) {?> 书籍 ID 主题标题 印刷版本 条件 询问价格

(上面的行看起来像一个表格)

If you like to request any of these titles, Do the following:
Run Code Online (Sandbox Code Playgroud)

我不确定为什么会发生这种情况,但我有预感,这是因为 HTML 将 -> 视为标签。有什么办法可以解决这个问题吗?

只是为了解释一下,我已经查看了所有答案,尝试了所有答案,但据我所知,我找不到答案。

提前谢谢了。

更新1:

所以我设法整理了显示的附加代码,感谢@Fred -ii-

然而,数据并未显示。我尝试了以下方法来输出日期,但没有成功:

foreach ( $mysqli->query('SELECT * FROM entry_database') as $row ) 
    {?>
    <?php echo $row['ID'];?><br /><?php echo $row['Subject'];?><br /><?php echo $row['Title'];?><br /><?php echo $row['PrintEdition'];?><br /><?php echo $row['Cond'];?><br /><?php echo $row['Price'];?><br />
<?php } 
mysqli_close($mysqli);
?>
Run Code Online (Sandbox Code Playgroud)

我确信我们正在到达那里

Fun*_*ner 5

好的,我会回答这个问题:

添加$('server', 'user', 'password', 'database')其中应该读取的内容,
($server, $user, $password, $database)否则 PHP 会向您抛出一条有关“未定义常量...”的消息。

您需要确保您的文件是.php这样的,这就是为什么您的页面看起来像代码而不是被正确解析的原因。

您可以指示 Apache 将.html文件视为 PHP,但这只是更多工作。

我非常怀疑你正在做的事情,尝试运行一个.html文件并期望它以 PHP 的方式运行,就像 Web 浏览器运行 HTML 文件一样。

  • 如果您尝试在自己的计算机上运行此程序,则需要安装网络服务器。

另外,你正在做as $row并回应echo $res应该是as $res

您还只选择了“用户”和“主机”列,SELECT user,host并且想要回显IDSubjectTitle以及PrintEditionCondPrice,这是行不通的。

您需要添加/选择所有这些列,或者绝对SELECT *确保这些列确实存在于您的表中。


编辑:

替换这个块:

foreach ( $mysqli->query('SELECT user,host FROM mysql.user') as $row ) {
    ?>
    <tr>
        <td><?php echo $row['ID'];?></td>
        <td><?php echo $row['Subject'];?></td>
        <td><?php echo $row['Title'];?></td>
        <td><?php echo $row['PrintEdition'];?></td>
        <td><?php echo $row['Cond'];?></td>
        <td><?php echo $row['Price'];?></td>
    </tr>
Run Code Online (Sandbox Code Playgroud)

和:

$results = $mysqli->query('SELECT * FROM entry_database');

while($row = $results->fetch_assoc()) {
    ?>
    <tr>
        <td><?php echo $row['ID'];?></td>
        <td><?php echo $row['Subject'];?></td>
        <td><?php echo $row['Title'];?></td>
        <td><?php echo $row['PrintEdition'];?></td>
        <td><?php echo $row['Cond'];?></td>
        <td><?php echo $row['Price'];?></td>
    </tr>
Run Code Online (Sandbox Code Playgroud)

或者:

<!DOCTYPE html>
<head></head>
<body>
    <table style="width: 100%;" border="1" cellspacing="5" cellpadding="5">
        <thead>
            <tr>
            <th align="left" valign="middle">ID</th>
            <th align="center" valign="middle">Subject</th>
            <th align="center" valign="middle">Title</th> 

            <th align="left" valign="middle">PrintEdition</th>
            <th align="center" valign="middle">Cond</th>
            <th align="center" valign="middle">Price</th>               
        </tr>
    </thead>
    <tbody>
    <?php 
    $server= 'MYSERVER';
    $user = 'MYUSERNAME';
    $password = 'MYPASSWORD';
    $database = 'MYDBNAME';
    $mysqli = new mysqli($server, $user, $password, $database);
    $results = $mysqli->query('SELECT * FROM entry_database');
    while($row = $results->fetch_assoc()): ?>
        <tr>
            <td align="center" valign="middle"><?php echo $row['ID']; ?></td>
            <td align="center" valign="middle"><?php echo $row['Subject']; ?></td>
            <td align="left" valign="middle"><?php echo $row['Title']; ?></td>
            <td align="center" valign="middle"><?php echo $row['PrintEdition']; ?></td>
            <td align="center" valign="middle"><?php echo $row['Cond']; ?></td>
            <td align="left" valign="middle"><?php echo $row['Price']; ?></td>
        </tr>
    <?php endwhile;?>
    </tbody>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)