我是PHP编程的新手,我尝试学习如何使用数据库。我已准备好MySQL,有1个数据库,包含1个包含7个条目的表。 问题是,当我尝试将条目输出到一个非常简单的表时,在创建表之前,它输出7次< BR />没有原因。 代码是这样的:
<?php
$con=mysqli_connect("localhost","root","**********", "*****");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
} else { echo "Connection was OK! <br/>";}
$result = mysqli_query($con,"SELECT * FROM pelates") or die(mysql_error());
echo "<table border='1'><tr><th>ID</th><th>Onoma</th><th>Epwnymo</th><th>Hlikia</th><th>Genethlia</th></tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr> <td>" . $row['id'] . "</td> <td>" . $row['name'] . "</td> <td>" . $row['surname'] . "</td> <td>" . $row['age'] . "</td> <td>" . $row['birthday'] . "</td></tr>";
echo "<br>";
}
echo "</table>";
mysqli_close($con);
?>
我相信的一切看起来都不错。以下是输出的一部分:
Connection was OK! <br/><table border='1'><tr><th>ID</th><th>Onoma</th>
正如你所看到的只有1&lt; br /&gt;消息“连接没问题”和表之间。在实际它产生另外7!以下是Chrome中的inspect元素的结果(与Firefox一样!):
Connection was OK!
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<table border='1'><tr><th>
据我所知,当我定义:
$result = mysqli_query($con,"SELECT * FROM pelates") or die(mysql_error());
“内存”需要7个结果,但这不应该是真实的。为什么它会打印7个分组,而我没有告诉它?我能做些什么来阻止它?
非常感谢您的时间,并为这篇长篇文章感到抱歉。
答案 0 :(得分:3)
您在表<br>
中的行之间添加了</tr><br/><tr>.
正如您在FF和Chrome中提到的那样,检查元素会在表格之前显示它们。这是因为<br>
不属于那里,浏览器必须把它放在某处,所以它把它们放在桌子前面。
如果您要显示源(而不是检查元素),您将得到正确的结果。
答案 1 :(得分:1)
答案 2 :(得分:-1)
在循环中删除echo "<br>";