【问题标题】:Display mysql data in formatted table在格式化表中显示 mysql 数据
【发布时间】:2015-08-26 21:15:44
【问题描述】:

我正在从数据库中检索数据并显示在表格中。我希望表格采用 4 x 3 布局。数据检索得很好,它的布局不起作用。这是我的代码:

<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');

$db = new mysqli('localhost', 'root', '', 'ezwayautos');

if($db->connect_errno > 0){
    die('Unable to connect to database [' . $db->connect_error . ']');
}
$sql = "SELECT * FROM vehicles ORDER BY RAND() LIMIT 12";

if(!$result = $db->query($sql)){
    die('There was an error running the query [' . $db->error . ']');
}
    echo "<table>";
while($row = $result->fetch_assoc())
{
    echo "<tr>";
    echo "<td height='160' valign='top' class='featured'>";
    echo "<div class='Image-Thumbnail'>";
    echo "<a href=''>";
    echo "<img src='".$row['image']."' width='160' height='54'>";
    echo "</a>";
    echo "</div> <a href=''>" .$row['vehicle_name']. "</a>";
    echo "</td>";
    echo "</tr>";
}
    echo "</table>";
?>

每个单元格中应该有一张车辆图片,图片下方有名称。

这是另一个网站的示例,说明我希望它的外观:

http://www.denisonmotors.com

我没有从他们的网站窃取任何信息,我只是想让我的数据以他们网站上的格式显示。

我不关心空的href标签,因为它们稍后会被填写。

做了一些研究后,我认为我必须使用 2 个 for 循环来创建表格,说明我想要多少列和行。

【问题讨论】:

  • 循环中的最后 3 行应该在它之外
  • @Dagon 你一直在秒杀我,但我的借口是我必须格式化一些代码
  • @RiggsFolly 幸运的是我很享受殴打
  • 汤米,你将不得不向我们展示你之后的例子
  • 我们需要知道什么进入了哪些单元格。当涉及到这样的问题时,你应该准确。 “什么”是您查询中的哪些行等。相应地编辑您的问题。

标签: php mysql


【解决方案1】:

是否就像将关闭外部表的最后 3 行移到 while 循环之外一样简单?

<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');

$db = new mysqli('localhost', 'root', '', 'ezwayautos');

if($db->connect_errno > 0){
    die('Unable to connect to database [' . $db->connect_error . ']');
}
$sql = "SELECT * FROM vehicles ORDER BY RAND() LIMIT 12";

if(!$result = $db->query($sql)){
    die('There was an error running the query [' . $db->error . ']');
}
echo "<table>";
echo "<tr>";
echo "<td>";
while($row = $result->fetch_assoc())
{
    echo "<table border='0' cellpadding='0' cellspacing='0'>";
    echo "<tr>";
    echo "<td height='160' valign='top' class='featured'>";
    echo "<div class='Image-Thumbnail'>";
    echo "<a href='inventory/view/7995179/2005-Volvo-XC90-4dr-2.html'>";
    echo "<img src='".$row['image']."' width='160' height='54' alt='".$row['vehicle_name']."'>";
    echo "</a>";
    echo "</div> <a href='inventory/view/7995179/2005-Volvo-XC90-4dr-2.html'>" .$row['vehicle_name']. "</a>";
    echo "</td>";
    echo "</tr>";
    echo "</table>";
}
echo "</td>";
echo "</tr>";
echo "</table>";
?>

【讨论】:

  • 如果对 @Dagon 有任何帮助,我赞成你的评论,但随后将其拿走并交给了 Smokey。
  • 他指的是博世。他是一个非常有火花的人。我们将他命名为 Sparky
  • 我相信 Sparky 不会介意的 ;-) 你不是 Sparky 吗?! @达贡
【解决方案2】:

表生成不正确。我认为您并不是要在另一个表中创建一个表,所以我认为您应该这样做:

echo "<table>";
while($row = $result->fetch_assoc())
{
    echo "<tr>";
    echo "<td height='160' valign='top' class='featured'>";
    echo "<div class='Image-Thumbnail'>";
    echo "<a href='inventory/view/7995179/2005-Volvo-XC90-4dr-2.html'>";
    echo "<img src='".$row['image']."' width='160' height='54' alt='".$row['vehicle_name']."'>";
    echo "</a>";
    echo "</div> <a href='inventory/view/7995179/2005-Volvo-XC90-4dr-2.html'>" .$row['vehicle_name']. "</a>";
    echo "</td>";
    echo "</tr>";
}
echo "</table>";

您必须创建一次表,然后为每条记录创建一行。

【讨论】:

  • 我已经尝试了这两种建议,但仍然让显示从上到下而不是 4 x 3 表示 4 个单元格向下 3 个单元格
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-21
相关资源
最近更新 更多