将MySQL查询结果显示为每行HTML表

时间:2015-02-14 19:45:34

标签: php mysql html-table

我试图搜索,但没有找到任何可以帮助我的东西,所以我创建了一个新线程。

我有几个列的MySQL数据库。每行是一个项目的单独数据集。 现在我设法显示它非常接近我想要的,但要有一个更好的视图我需要将它格式化为两列表,其中第一列是数据库列的标题作为其全名和第二列列包含响应值。

数据库格式:
| col1 | col2 | col3 | col4 |
| tex1 | tex2 | tex3 | tex4 |
| tex5 | tex6 | tex7 | tex8 |

http://oi61.tinypic.com/23gzmec.jpg

现在我看到输出为:

Col1全名x:tex1
Col2全名XXXxxxxxxxxx:tex2
Col3全名XXXxx:tex3
Col4全名:XXXxxxxxxxxxxxxxxxxx:tex4

Col1全名x:tex5
Col2全名XXXxxxxxxxxx:tex6
Col3全名XXXxx:tex7
Col4全名:XXXxxxxxxxxxxxxxxxxx:tex8

http://oi58.tinypic.com/2el8ksl.jpg

“x”-s给出具有不同长度的列名的视觉可比图像。但是我希望将它作为一个表格,其中“tex”值从相同的距离开始,该距离是最长的列名称标签长度或表格第一列的预设宽度。

在视觉上我希望它看起来更像这样:

Col1全名:| tex1
Col2全名:| TEX2
Col3全名:| tex3
Col4全名:| tex4

现在我的代码看起来像这样:

<?php
$servername = "mysqlsite";
$username = "admin";
$password = "password";
$dbname = "mydb";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT btitle, basin, busurl, bukurl, bimageurl, bauthor, bauthoremail, bauthorbio, bgenre, bsdesc, bldesc  FROM book_info";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
   while($row = $result->fetch_assoc()) {
    echo    "<strong>Title: </strong>" .$row["btitle"].
            "<br><strong>ASIN: </strong>" .$row["basin"]. 
            "<br><strong>US URL: </strong>" .$row["busurl"]. 
            "<br><strong>UK URL: </strong>" .$row["bukurl"]. 
            "<br><strong>Image: </strong>" .$row["bimageurl"]. 
            "<br><strong>Author: </strong>" .$row["bauthor"]. 
            "<br><strong>Author Bio: </strong>" .$row["bauthorbio"]. 
            "<br><strong>Genre: </strong>" .$row["bgenre"]. 
            "<br><strong>Short Description: </strong>" .$row["bsdesc"]. 
            "<br><strong>Long Description: </strong>" .$row["bldesc"]. 
            "<br><br><br><br>";
    }
} else {
echo "0 results";
}
$conn->close();
?>

我从w3schools获得了这个代码,并根据我的需要对其进行了修改,但当我尝试将其更改为显示为表格时,没有任何好处发生。

有人可以帮忙吗?

4 个答案:

答案 0 :(得分:0)

您应该使用HTML <table>标记。在你的情况下,它看起来像这样:

<table>
  <tr><!-- This is a table row -->
    <td> <!-- This is a column inside a row -->
      ASIN:
    </td>
    <td>
      YourValueOrWhatever
    </td>
   </tr>

   <!-- Include the same markup for all rows here -->

</table>

答案 1 :(得分:0)

像这样......并相应地放置你的数据..

<table>
<tr>
<th> <!--your table headers -->
...
</th>
 while($row = $result->fetch_assoc()) {
<tr>
echo '<td>'.$row["btitle"].'</td>';
echo '<td>'.$row["basin"].'</td>'; //your table data
echo '<td>'.$row["busurl"].'</td>';
...
</tr>
}
</table>

答案 2 :(得分:0)

如果您需要表格数据,那么为什么不构建表格?如果您不想看到它们,可以删除边框。这样,列单元格将调整为最长的标题,文本单元格将在此之后开始。

<table>
  <tr>
  <td>Col 1</td>
  <td>tex1</td>
  </tr>
  <!-- Create other rows the same way -->
  </table>

您可以将样式与样式属性保持一致,也可以创建类和/或ID并添加css样式表。

答案 3 :(得分:0)

感谢Moid Mohd我得到了它的工作,但它需要一些额外的修补才能没有错误。所以我发布了工作代码,以便将来遇到此问题的人也能看到解决方案。

    echo "<table><tr><th>table headding</th></tr>";
    while($row = $result->fetch_assoc()) {

    echo    "<tr><td><strong>Title:</strong></td><td>" .$row["btitle"]."</td></tr>";
    echo    "<tr><td><strong>ASIN:</strong></td><td>" .$row["basin"]. "</td></tr>";
    echo    "<tr><td><strong>US URL:</strong></td><td>" .$row["busurl"]."</td></tr>" ;
    echo    "<tr><td><strong>UK URL:</strong></td><td>" .$row["bukurl"]."</td></tr>" ;
    echo    "<tr><td><strong>Image URL:</strong></td><td>" .$row["bimageurl"]."</td></tr>" ;
    echo    "<tr><td><strong>Author:</strong></td><td>" .$row["bauthor"]."</td></tr>" ;
    echo    "<tr><td><strong>Author Email:</strong></td><td>" .$row["bauthoremail"]."</td></tr>" ;
    echo    "<tr><td><strong>Author Bio:</strong></td><td>" .$row["bauthorbio"]."</td></tr>" ;
    echo    "<tr><td><strong>Genre:</strong></td><td>" .$row["bgenre"]."</td></tr>" ;
    echo    "<tr><td><strong>Short Description:</strong></td><td>" .$row["bsdesc"]."</td></tr>" ;
    echo    "<tr><td><strong>Long Description:</strong></td><td>" .$row["bldesc"]. "</td></tr>";
    echo    "<tr><td><br><br></td></tr>";

    }
    echo "</table>";