0

我创建了一个用于添加和查看提醒的 PHP 程序。添加页面有效,但我在正确显示它们时遇到了一些问题。我应该如何编码才能只获取实际数据?另外,我怎么能把它放到 HTML 表中?(即名称、描述和日期列;行是检索到的数据)

谢谢

当我在浏览器中打开文件时,我得到这个输出:

数组 ( [reminderID] => 14 [reminderName] => Test [reminderDescript] => Test_Descript [reminderDate] => 2012 05 7 )

代码:

<?php include 'header.php'; ?>
<?php include 'database.php'; ?>
<div id="content">
  <h1>Reminder List</h1>
        <table align ="center">
    <thead>
        <tr>
            <td>Name</td>
            <td>Description</td>
            <td>Date</td>
        </tr>
    </thead>
    <?php 
        $query = 'SELECT * FROM reminder_event';
        $result = mysql_query($query);
            while($row = mysql_fetch_assoc($result)) {
                print_r($row);
            }
        ?>
  </table>
  <p><a href='reminder_add.php'>Add Reminder</a></p>
</div>
<?php include 'footer.php'; ?>
4

3 回答 3

2

print_r()是用于调试的诊断工具,不能用于实际输出。相反,使用从您的行中获取的数组键将 HTML 输出到表中。

// Open a table
echo "<table>";
while($row = mysql_fetch_assoc($result)) {
  // Output each row
  echo "<tr>
   <td>{$row['reminderName']}</td>
   <td>{$row['reminderDescript']}</td>
   <td>{$row['reminderDate']}</td>
  </tr>";
}
// Close the table
echo "</table>";

更好的是,在输出之前使用 [ ] (http://us3.php.net/manual/en/function.htmlspecialchars.php) 转义 HTML 输出的每个值,htmlspecialchars()以防止跨站点脚本攻击和破坏 HTML,如果字符像< > &在值中遇到。

echo "<table>";
while($row = mysql_fetch_assoc($result)) {
  // Encode all values for HTML output
  $name = htmlspecialchars($row['reminderName']);
  $desc = htmlspecialchars($row['reminderDescript']);
  $date = htmlspecialchars($row['reminderDate']);

  // Then output the encoded values
  echo "<tr><td>$name</td><td>$desc</td><td>$date</td></tr>";
}
echo "</table>";
于 2012-05-05T03:33:08.657 回答
1

改变:

while($row = mysql_fetch_assoc($result)) {
  print_r($row);
}

到:

while($row = mysql_fetch_assoc($result)) {
  echo $row['reminderID'];
  echo $row['reminderName'];
  echo $row['reminderDescript'];
  echo $row['reminderDate'];
}

您可以在任何您喜欢的 HTML 中回显这些值。因此,例如,如果您想在表格中使用它,您可以执行以下操作:

echo "<table><tr>";
while($row = mysql_fetch_assoc($result)) {
  echo "<td>" . $row['reminderID'] . "</td>";
  echo "<td>" . $row['reminderName'] . "</td>";
  echo "<td>" . $row['reminderDescript'] . "</td>";
  echo "<td>" . $row['reminderDate'] . "</td>";
}
echo "</tr></table>";

您可以稍微清理一下以从 PHP 中取出部分(或全部)HTML。

于 2012-05-05T03:33:37.183 回答
1
<?php include 'header.php'; ?>
<?php include 'database.php'; ?>
<div id="content">
  <h1>Reminder List</h1>
    <table>
        <thead><tr><td>id</td><td>name</td><td>description</td><td>date</td></tr></thead>
        <tbody>
        <?php 
            $query = 'SELECT * FROM reminder_event';
            $result = mysql_query($query);
            while($row = mysql_fetch_assoc($result)) { ?>
            <tr>
                <td><?php echo $row['reminderID']; ?></td>
                <td><?php echo $row['reminderName']; ?></td>
                <td><?php echo $row['reminderDescript']; ?></td>
                <td><?php echo $row['reminderDate']; ?></td>
            </tr>
           <?php } ?>
        </tbody>
    </table>
  <p><a href='reminder_add.php'>Add Reminder</a></p>
</div>
<?php include 'footer.php'; ?>
于 2012-05-05T03:37:36.527 回答