在列表项中显示从 SQL 数据库接收到的数据

Posted

技术标签:

【中文标题】在列表项中显示从 SQL 数据库接收到的数据【英文标题】:Displaying received data from a SQL Database in a list item 【发布时间】:2012-08-28 05:54:02 【问题描述】:

迁移到 php 的老 ASP 开发人员。我编写了一个 PHP 脚本来从 MS SQL 数据库中检索条目并显示。看起来像这样:

<?php
$query = "SELECT DateUploaded, Title ";
$query .= "FROM TableName ";

$result = mssql_query($query);

$numRows = mssql_num_rows($result); 
echo "<h1>" . $numRows . " Row" . ($numRows == 1 ? "" : "s") . " Returned </h1>"; 

while($row = mssql_fetch_array($result))

echo "<li>" . $row["DateUploaded"] . $row["Title"] . "</li>";

?>

现在,当我想让它在页面上显示回显时效果很好。使用这部分代码:

while($row = mssql_fetch_array($result))

echo "<li>" . $row["DateUploaded"] . $row["Title"] . "</li>";

但是,当我尝试将其放入我创建的用于显示它的表格中时,它似乎不起作用,虽然我已经阅读了一些教程并且觉得它应该,但它也类似于我曾经使用的技术在 ASP 中。

看起来像这样:

<TABLE cellSpacing=1 cellPadding=2 align=center bgColor=#aaaaaa border=0  class="logintbl">
            <TR>
              <TD bgColor=whitesmoke colSpan=0><B>News</B></td>
            </tr>
            <tr>
                <td bgColor=#ffffff>
                    <table align="center" cellSpacing=0 cellPadding=2 border="0" >
                        <tr>
                            <td align="center" valign="bottom">&nbsp;<font color="#4d71a1"><b>Date Uploaded</b></font>&nbsp;</td>
                            <td align="center" valign="bottom">&nbsp;<font color="#4d71a1"><b>News Title</b></font>&nbsp;</td>
                            <td align="center"></td>

                        </tr>

                        <tr bgcolor="#eeeeee">

                        <tr bgcolor="#ffffff">

                            <td align="center"><?php echo $row["DateUploaded"]; ?></td>
                            <td align="center"><?php echo $row["Title"]; ?></td>
                            <td align="center">
                            <A href="NewsUpdate.php?id="><img src="images/0013-pen.gif"    border="0"></A>&nbsp;&nbsp;&nbsp;
                            <a href="NewsManage.php?do=del&id=" return false;">
                                <img src="images/1001-cancel16.gif"    border="0">
                            </a>

                            </td>

                        </tr>

                        <tr><td colspan="7">&nbsp;</td></tr>
                        <tr>
                            <td colspan="7" align="center">
                            </td>
                        </tr>

                    </table>
                </td>
            </tr>
        </table>

我可能完全做错了,但有人能指出我正确的方向吗?

【问题讨论】:

您是否遇到任何错误?您是否尝试过 var_dump'ing 表中 $row 的内容? (var_dump($row);) 你能用while循环和所有东西发布整个表吗?这可能与您如何构建表格有关,因为数据显然在那里。 按代码看来应该没有问题。只是为了确认一下,您是否将 标签放在 while 循环下。请使用包括 while 循环在内的完整代码更新最后一个代码块。 你的 td 是否在 while 循环中?? 用 while 循环向我们展示完整的表格。 【参考方案1】:

将行放入循环内的 echo 中:

<?php
while($row = mssql_fetch_array($result))

echo '<tr bgcolor="#ffffff">
<td align="center">'.$row["DateUploaded"].'</td>
<td align="center">'.$row["Title"].'</td>
<td align="center">
  <A href="NewsUpdate.php?id="><img src="images/0013-pen.gif"    border="0"></A>&nbsp;&nbsp;&nbsp;
  <a href="NewsManage.php?do=del&id=" return false;"><img src="images/1001-cancel16.gif"    border="0"></a>
</td>
</tr>';

?>

【讨论】:

我修改了答案以匹配您的确切表格。只需将数据行替换为 php 代码即可。【参考方案2】:

在包含数据的行之前开始 while 循环, 并在此之后立即结束。

<table align="center" cellSpacing=0 cellPadding=2 border="0" >
    <!-- header row here -->

    <?php 
        $alterColor = true;
        while ($row = mssql_fetch_array($result))   // start while 

        // alternating bg color for rows
        $color = ($alterColor) ? "#fff" : "#eee";  
        $alterColor = !$alterColor;
    ?>
    <tr bgcolor="<?php echo $color; ?>">

         <td align="center"><?php echo $row["DateUploaded"]; ?></td>
         <td align="center"><?php echo $row["Title"]; ?></td>
         <td align="center">
             <A href="NewsUpdate.php?id="><img src="images/0013-pen.gif"    border="0"></A>&nbsp;&nbsp;&nbsp;
             <a href="NewsManage.php?do=del&id=" return false;">
                 <img src="images/1001-cancel16.gif"    border="0">
             </a>

         </td>

     </tr>
     <?php  // end while ?>
</table>

PS 其中一个似乎是额外的,它们是否用于交替颜色或类似的东西:

 <tr bgcolor="#eeeeee">

 <tr bgcolor="#ffffff">

你不应该真的在 tr 中直接有一个 tr。

【讨论】:

以上是关于在列表项中显示从 SQL 数据库接收到的数据的主要内容,如果未能解决你的问题,请参考以下文章

Python:如何从列表项中删除单引号

PHP/SQL:从数据库接收到的“假”值具有良好的查询

将从数据库检索到的图像显示为具有 CSS 样式的列表

分割从串口接收到的字符串

JS调用后台数据查询,让查询到的数据在下拉列表里显示

如何使用 pl/SQL 函数在 LOV 项中列出数字(例如从 1 到 20)?返回值与显示值相同