PHP-MySQL消息系统

时间:2012-02-06 15:12:56

标签: php mysql html

我创建了一些网站,现在我创建了一个消息系统。为此,我创建了mysql inbox_msg base(from,to,subject,date,time,message,file1,file2,file3,unread)。 现在我不知道,如何创建PHP脚本来打印它的消息。 现在它看起来像这样:

<?
session_start();
$user = $_SESSION['login'];
$mysql_connect = mysql_connect("localhost", "root", "");
$mysql_select_db = mysql_select_db("site");
$sql = "SELECT * FROM `msg_inbox` WHERE `to` = '$user'";
$result = mysql_query($sql) or die(mysql_error());
$sql1 = "
    UPDATE `msg_inbox`
    SET `unread` = 0
    WHERE `to` = '" . mysql_real_escape_string($user) . "'
  ";
$result1 = mysql_query($sql1) or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
        <br>
        From: <?= $row['from'] ?>
        <br>
        Date: <?= $row['date'] ?> at <?= $row['time'] ?>
        <br>
        <br>
        <?= $row['message'] ?>
        <br>           
        <HR>     
}
?>

但这并不好:我有一个问题是添加删除按钮和其他。你能帮助我吗? 谢谢!

1 个答案:

答案 0 :(得分:2)

首先,while循环中的代码是无效的PHP,因此脚本肯定不会像发布的那样运行。您需要做的是将该代码标记为非PHP(即通过在while循环之后关闭PHP脚本标记并在结束之前重新打开来标记HTML标记)或使用诸如echo之类的输出机制PHP中的函数。

以下是使用echo重写while循环的方法:

while ($row = mysql_fetch_array($result)) {
   echo("<br/>From: ".$row['from']."<br/>");
   echo("Date: ".$row['date']." at ".$row['time']."<br/><br/>");
   echo($row['message']);
   echo("<br/><HR>");
}

就删除按钮而言,您可以将其作为提交类型的HTML输入元素添加到页面中,并将其放在HTML form元素中。当用户单击该按钮时,表单将执行HTTP POST或GET(取决于您在method元素上放置的form属性)。 POST或GET的页面由form元素的另一个属性控制,名为action

以下是一个例子:

 <form id='frmMessageView' name='frmMessageView' method='POST' action='delete_message_script.php'>
     <input id='btnDelete' name='btnDelete' type='submit' value='Delete Message' />
 </form>

在上面的示例中,当用户单击“删除消息”按钮时,浏览器将对delete_message_script.php脚本执行POST HTTP请求。

您可能希望阅读有关HTML表单元素以及表单如何工作的更多信息(即POST和GET请求之间的区别,请求变量以及不同类型的输入元素;另外,请阅读PHP如何允许您处理HTTP请求变量)。在表单发布给您的PHP脚本中,可能需要跟踪用户单击哪个按钮(如果有多个)以及需要删除哪个消息。

最后,一旦你明白了,请阅读表格回复。这是回发到同一页面(脚本)的机制。