【问题标题】:PHP echo tablesPHP 回显表
【发布时间】:2013-02-25 13:23:16
【问题描述】:

概述

我在 MySql 数据库中存储了一些与产品相关的数据。我正在尝试检索此数据并将其显示在使用 HTML 表的页面上。 PHP 和 MySql 运行良好,所有数据都已检索,但显示方式非常混乱。

这是我的布局:

我的目标是进一步划分结果表添加更多列行以使数据更具可读性

类似的东西;

代码:PHP、MySQL 和 HTML:

<?php

    session_start();

    include('connect_mysql.php');


    $product_name = 'product_name';
    $product_qua = 'product_qua';
    $product_price = 'product_price';
    $product_image = 'product_image';
    $product_des = 'product_des';


$sql = mysql_query("SELECT * FROM products");

 echo "<table id='display'>";


while($rows = mysql_fetch_array($sql))
{
    echo"<br>";
    echo"<tr><td>";
    echo"$rows[$product_name]<br></td>";

    echo"<td><img src=$rows[$product_image] height='200px' width='200px'><br></td>";
    echo"<td>Avalible: $rows[$product_qua]<br></td>";
    echo"<td>Price: $rows[$product_price]<br></td>";
    echo"<td>Description: $rows[$product_des]<br></td>";    
    echo"</tr>";

}

echo "</table>";
?>

负责这部分的CSS:

#display{
    float:left;
    border: 5px solid black;
    margin-left:100px;


}

【问题讨论】:

  • 您需要添加边框,并且可能还需要填充到您的 tds [编辑:krike 在他的回答中所说的话]。除此之外,您还放错了一个“
    ”。

标签: php html mysql css


【解决方案1】:

只需为表格单元格添加一些填充或边框:

table#display td{
    border: 1px solid black;
    padding:0 8px;

}

编辑:你也可以做什么:

<table id='display'>
<?php while($rows = mysql_fetch_array($sql)): ?>
    <!-- <br>  <- why a break? it's not in the correct spot anyway --> 
<tr><td>
<?php echo $rows[$product_name]; ?><br>
</td>
<td> - </td>
<td><img src="<?php echo $rows[$product_image]; ?>" height='200px' width='200px'><br></td>
<td> - </td>
<td>Avalible: <?php echo $rows[$product_qua]; ?><br></td>
<td> - </td>    
<td>Price: <?php echo $rows[$product_price]; ?><br></td>
<td> - </td>
<td>Description: <?php echo $rows[$product_des]; ?><br></td>
</tr>
<?php endwhile; ?>
</table>

提示:我更喜欢使用 while/endwhile;向用户显示数据时使用方括号,而不是使用方括号。

【讨论】:

  • 最后一个快速的问题......说我想将每个项目分开,而不仅仅是通过“线”如何实现
  • 他们已经分开了。每个项目都在他自己的单元格中。现在唯一的分离是视觉上的。通过一行或者你可以在你的数据之间增加一个额外的 td 并添加一个分隔符。 (将更新我的答案)
【解决方案2】:

首先不要使用 PHP 回显那么多 HTML,而是这样做

<?php
    session_start();

    include('connect_mysql.php');

    $product_name = 'product_name';
    $product_qua = 'product_qua';
    $product_price = 'product_price';
    $product_image = 'product_image';
    $product_des = 'product_des';


$sql = mysql_query("SELECT * FROM products"); ?> 

<table id='display'> 
    <?php 
        while($rows = mysql_fetch_array($sql)) { 
    ?>
       <tr><td><?php echo $rows[$product_name]; ?></td>
       <!-- And so on--> 
     <?php   
        } 
     ?> 
 </table>

其次,通过查看您的图像,您的表格似乎需要一个边框,因此请使用

table, td {
   border: 1px solid #000000;
}

【讨论】:

  • 好的,谢谢你的建议,应用了你建议的技术,它似乎有效,但我的问题是这对我的代码有什么好处:P 希望这不是一个蹩脚的问题,呵呵
  • 我会说它使您的代码更容易在体面的文本编辑器上阅读。您还可以通过简化 到 = $var ?>
【解决方案3】:

添加以下 css 以在表格单元格上应用边框:

#display td{ border: 2px solid red; }

并可选择添加到您的 #display { :

border-collapse: collapse;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    相关资源
    最近更新 更多