Php 在HTML中创建表以在MySQL中显示查询结果
我想创建一个PHP页面,以表的形式显示MySQL数据库中的查询结果。我花了相当多的时间在不同的论坛上,最终得到了某种让我满意的东西,但这对我的网页设计和布局有很大影响。由于我是通过测试失败策略编写代码的,这远不是简单的,我确信可以缩短和简化代码,从而使其更符合我的网页格式。有谁能看一看,并就如何解决这类问题提出一些普遍感兴趣的建议Php 在HTML中创建表以在MySQL中显示查询结果,php,mysql,Php,Mysql,我想创建一个PHP页面,以表的形式显示MySQL数据库中的查询结果。我花了相当多的时间在不同的论坛上,最终得到了某种让我满意的东西,但这对我的网页设计和布局有很大影响。由于我是通过测试失败策略编写代码的,这远不是简单的,我确信可以缩短和简化代码,从而使其更符合我的网页格式。有谁能看一看,并就如何解决这类问题提出一些普遍感兴趣的建议 <div id="main"> <?php require_once('../mysqli_connect.php'); $resp
<div id="main">
<?php
require_once('../mysqli_connect.php');
$response = $db->query("SELECT * FROM metabolite");
echo '<table align="center" cellspacing="2" cellpadding="5" border = "1">
<tr><td align="center"><b>Metabolites</b></td>
<td align="center"><b>KEGG Id</b></td>
<td align="center"><b>Synonyms</b></td></tr>';
while ($data = $response->fetch())
{
?>
<tr><td align="left">
<?php echo $data['Metabolite_name']; ?></td>
<td align="left">
KEGG: <?php echo $data['Synonyms']; ?></td>
<td align="left">
<?php echo $data['Synonyms']; ?></td>
</tr>
<?php
}
$response->closeCursor();
?>
</div>
凯格:
我提前感谢你的努力和帮助
汤姆。如果($response->num\u rows>0){
而($data=$response->fetch_assoc()){
echo“$data[“代谢物名称”];
}
}
否则{
回显“0结果”;
}
我们无法用您给我们的代码改进您网页的设计和布局。我能做的就是写“更好”的可读代码
<?php
function tableCell($content)
{
echo '<td align="left">'.$content.'</td>';
}
// database access
require_once('../mysqli_connect.php');
// get all records from the metabolite table
$response = $db->query("SELECT * FROM metabolite");
// start main division
echo '<div id="main">';
// start the table
echo '<table align="center" cellspacing="2" cellpadding="5" border = "1">';
// walk through all the metabolite records
while ($data = $response->fetch())
{
// start a row
echo '<tr>';
// create the cells
tableCell($data['Metabolite_name']);
tableCell('KEGG: '.$data['Synonyms']);
tableCell($data['Synonyms']);
// finish a row
echo '</tr>';
}
// close the table
echo '</table>';
// close main division
echo '</div>';
// close query
$response->closeCursor();
问题出在哪里?你想美化你的代码吗?你有没有研究过CSS来控制网页的设计和布局?看:你刚才投票否决了我的答案吗?保罗·斯皮格尔?@Kobbe没有。但我可能应该。看起来有人有一段时间没上床了。嗨。我看到你在另一篇文章中提到使用CSS标准化外观,我做到了,这就是我如何知道样式是正确的,因为我在另一个页面上没有问题,该页面没有引用任何数据库,但更像一些纯文本。我相信,在我编写的代码中,我多次打开和关闭php,这可能会干扰HTML页面中的CSS布局。按照你的建议,你只能打开一次。我假设我必须在最后一行之后添加一个额外的?>。今晚我要试一试。非常感谢。最后一件事,如果我理解正确的话,在PHP中,每当我想写一些东西,以便它作为一个普通的HTML命令读取(例如,创建一个表,添加一行,写一些文本,…),我只需要写echo“”,它在PHP之外读取。好吗。您可以在一个文件中多次打开和关闭PHP,这应该不是问题。我不喜欢,但那只是我的意见。2.不,如果您没有放入任何HTML,那么在结束PHP代码后,您不必使用?>
结束。看:(我自己都不明白)。3.是的,echo
和其他一些函数会生成输出,如果使用http协议(=Web服务器),浏览器会将输出解释为html。确定。非常感谢所有这些细节。我尝试了一下,从代码的开头到$data(在函数中),我收到了一些错误消息,稍后将对其进行定义。无论如何,这无助于改进格式。我可能在定义划分时做错了什么。我将从头开始。无论如何,非常感谢你的帮助和时间。是的,愚蠢的错误。我没有运行代码,所以我没有发现它。我将更改代码以更正此问题。不,这无助于格式化。我希望您从中得到了一些东西:源代码的良好样式非常重要!
<?php
function tableCell($content)
{
echo '<td align="left">'.$content.'</td>';
}
// database access
require_once('../mysqli_connect.php');
// get all records from the metabolite table
$response = $db->query("SELECT * FROM metabolite");
// start main division
echo '<div id="main">';
// start the table
echo '<table align="center" cellspacing="2" cellpadding="5" border = "1">';
// walk through all the metabolite records
while ($data = $response->fetch())
{
// start a row
echo '<tr>';
// create the cells
tableCell($data['Metabolite_name']);
tableCell('KEGG: '.$data['Synonyms']);
tableCell($data['Synonyms']);
// finish a row
echo '</tr>';
}
// close the table
echo '</table>';
// close main division
echo '</div>';
// close query
$response->closeCursor();