【发布时间】:2010-09-19 01:12:53
【问题描述】:
我正在用 php/mysql 创建一个简单的留言板。用户输入他们的姓名和消息,javascript 立即显示消息,php/mysql 将其存储在数据库中。当页面加载时,它应该以格式化列表的形式显示数据库中的所有消息。
但是,我的 php 似乎只是任意显示一些消息。它们按正确的时间顺序排列,但有些缺失,仅显示其中 4 个。手动查看数据库中的条目,我可以看到发布的消息确实存储在他们的表中。他们只是没有被展示出来。奇怪。
这是显示消息的 HTML/PHP:
<?php
$records = getMessages(); //see getMessages() function below
$names = $records["names"];
$messages = $records["messages"];
$dates = $records["dates"];
for($i = count($records); $i > 0; $i--){ ?>
<div class="message">
<p class="message_txt"><?php echo $messages[$i];?></p>
<div>
<div class="message_name">
<?php echo $names[$i];?>
</div>
<div class="message_date">
<small>
<?php
echo "Posted on ";
echo date("F j, Y",strtotime($dates[$i]));
?>
</small>
</div>
</div>
</div>
<?php } ?>
这是上面的 getMessages() 函数:
function getMessages(){
$conn = connect("wedding");
$ids;
$names;
$messages;
$dates;
$get_messages_query = "SELECT id, name, message, date
FROM messages;";
$get_messages_result = mysql_query($get_messages_query,$conn) or die(mysql_error());
$i = 0;
while($row = mysql_fetch_array($get_messages_result)){
$ids[$i] = $row["id"];
$names[$i] = $row["name"];
$messages[$i] = $row["message"];
$dates[$i] = $row["date"];
$i++;
}
$entries = array("ids" => $ids,
"names" => $names,
"messages" => $messages,
"dates" => $dates
);
return $entries;
}
这是输出:
<div class="message">
<p class="message_txt">Yo this is a message</p>
<div>
<div class="message_name">Bob</div>
<div class="message_date"><small>Posted on September 18, 2010</small></div>
</div>
</div>
<div class="message">
<p class="message_txt">This is a message another</p>
<div>
<div class="message_name">Andrew</div>
<div class="message_date"><small>Posted on September 6, 2010</small></div>
</div>
</div>
<div class="message">
<p class="message_txt">And another message</p>
<div>
<div class="message_name">Andrew</div>
<div class="message_date"><small>Posted on September 6, 2010</small></div>
</div>
</div>
<div class="message">
<p class="message_txt">This is a message</p>
<div>
<div class="message_name">Andrew</div>
<div class="message_date"><small>Posted on August 27, 2010</small></div>
</div>
</div>
我不确定这里发生了什么。看起来很简单。我想这可能是一些我看不到的小白痴错误……但我看不到。
任何帮助将不胜感激。
【问题讨论】: