从MySQL数据库显示提醒页面

时间:2012-05-05 03:30:45

标签: php mysql

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

由于

当我在浏览器中打开文件时,我将其作为输出:

  

数组([reminderID] => 14 [reminderName] =>测试[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'; ?>

3 个答案:

答案 0 :(得分: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>";

更好的是,在输出之前使用[htmlspecialchars()](http://us3.php.net/manual/en/function.htmlspecialchars.php)转义HTML输出的每个值以防止跨站点如果在值中遇到< > &等字符,则会出现脚本攻击和损坏的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>";

答案 1 :(得分: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。

答案 2 :(得分: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'; ?>