这是我的代码(可怕的一个):
<?php
include 'connect/con.php';
$result = mysqli_query($con,"SELECT id, vidTitle FROM newsvid");
$result1 = mysqli_query($con,"SELECT imgCover, vidSD FROM newsvid");
$result2 = mysqli_query($con,"SELECT published FROM newsvid");
echo "<table width='"600'" border='"1'"><tbody>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo '<td width='"10%'"><a href="details.php?id='.$row['id'].'">'.$row['id'].'</a></td>';
echo "<td width='"90%'">" . $row['vidTitle'] . "</td>";
echo "</tr>";
}
echo "</tbody></table>";
echo "<table width='"600'" border='"1'"><tbody>";
while($row = mysqli_fetch_array($result1)) {
echo "<tr>";
echo "<td width='"40%'">" . $row['imgCover'] . "</td>";
echo "<td width='"60%'">" . $row['vidSD'] . "</td>";
echo "</tr>";
}
echo "</tbody></table>";
echo "<table width='"600'" border='"1'"><tbody>";
while($row = mysqli_fetch_array($result2)) {
echo "<tr>";
echo "<td >" . $row['published'] . "</td>";
echo "</tr>";
}
echo "</tbody></table>";
mysqli_close($con);
?>
</body>
</html>
问题是如何以这种布局显示数据库中的数据:
--------------------------------
-id----------vidTitle-----------
--------------------------------
-imgCover------vidSD------------
--------------------------------
----------published-------------
所以每次我添加更多的数据时,我之前展示的另一个块就会在现有的块下添加。
不需要编写3个查询。只需一个选择,就可以做到这一点,然后将所有回声放在while
中。这样一来,它会先运行所有的id和title,然后在表后面放一个表,加上cover和vidSD
。
尝试进行单个查询:
SELECT id, vidTitle, imgCover, vidSD, published FROM newsvid
这样,在从数据库返回的每一行上,都会有关于同一行的所有信息。
现在,运行一段时间和您正在做的一样,只是调整一些HTML:
echo "<table width='600' border='1'><tbody>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo '<td width='"10%'"><a href="details.php?id='.$row['id'].'">'.$row['id'].'</a></td>';
echo "<td width='"90%'">" . $row['vidTitle'] . "</td>";
echo "</tr>";
echo "<tr>";
echo "<td width='"40%'">" . $row['imgCover'] . "</td>";
echo "<td width='"60%'">" . $row['vidSD'] . "</td>";
echo "</tr>";
echo "<tr>";
echo "<td colspan='2'>" . $row['published'] . "</td>";
echo "</tr>";
}
echo "</tbody></table>";
你可能也想点。添加ORDER BY id DESC
就可以了。