我正在尝试使用 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)
我确信我们正在到达那里
好的,我会回答这个问题:
添加$到('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并且想要回显ID和Subject和Title以及PrintEdition和Cond和Price,这是行不通的。
您需要添加/选择所有这些列,或者绝对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)