我试图将它放到他们点击的哪一行,它将它放在一个名为reply.php的新页面中,但是发生的事情是它只显示最新的内容和主题,而不是来自点击一下。有什么建议?谢谢!
Messages.php
<html>
<head>
<link href='http://fonts.googleapis.com/css?family=Lato' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="styling/basic.css" />
<?php
require ("config.php");
session_start();
$username = $_SESSION['uname'];
$userid = mysql_query("SELECT `id` FROM `users` WHERE `uname` = '$username'")or die (mysql_error());
$id2=mysql_fetch_row($userid);
$userid=$id2[0];
$userlevel = mysql_query("SELECT `rank` FROM `users` WHERE `uname` = '$username'")or die (mysql_error());
$level=mysql_fetch_row($userlevel);
$userlevel=$level[0];
?>
</head>
<body>
<br />
<ul id="navmenu">
<li><a href="home.php">Home</a></li>
<li><a href="messages.php">Messages</a></li>
<li><a href="#">Friends</a></li>
<li><a href="#">Settings</a><span class="darrow">▼</span>
<ul class="sub1">
<li><a href="#">Account</a></li>
<li><a href="#">Profile</a>
<li><a href="logout.php">Logout</a></li>
</ul>
</li>
<li><a href="#">$<?php $query = mysql_query("SELECT * FROM users WHERE `uname` = '$username'"); while($row=mysql_fetch_array($query)){ echo $row['money']; } ?></a></li>
</ul>
<br />
<div class="page">
<h1>Messages</h1><br />
<?php
if ($_SESSION['uname']) {
} else {
?><script type="text/javascript">document.location = "login.php";</script><?php
}
?>
<ul id="tabs">
<li><a href="#">Inbox</a></li>
<li style="float: right;"><a href="create_message.php">New Message</a></li>
</ul>
<table style="width:100%;">
<tr>
<form action='delete_message.php' method='POST'>
<td><input type='checkbox' name='selectall'><input type='submit' name='deleteinbox' value='Delete' class='button'></td>
</tr>
<tr>
<td><u><b>From</b></u></th>
<td><u><b>Subject</b></u></th>
<td style="text-align: right;"><u><b>Date</b></u></th>
</tr>
</table>
<?php
$query = mysql_query("SELECT * FROM private_messages WHERE to_user = '$username'");
$numrows = mysql_num_rows($query);
if($numrows != 0){
while ($row = mysql_fetch_assoc($query)){
$msg_id = $row['id'];
$msg_to_user = $row['to_user'];
$msg_to_id = $row['to_id'];
$msg_from_user = $row['from_user'];
$msg_from_id = $row['from_id'];
$msg_subject = $row['subject'];
$msg_content = $row['content'];
$msg_date = $row['date'];
$msg_from_delete = $row['from_delete'];
$msg_to_delete = $row['to_delete'];
echo "$to_delete";
if(!$msg_from_delete){
echo "<div id='messages'>";
$messagefrom = "<div id='leftside'><input type='checkbox' name='cb$msg_id' value='$msg_id'/>
<a href='home.php?id=$msg_from_user' target='_blank'>$msg_from_user</a>";
echo ($messagefrom."</div>");
$messagedate = "<div id='rightside'>".$msg_date."</div>";
echo ($messagedate."");
$messagesubject = "<div id='center'>
<div id='toggle'><a href='reply.php?$msg_id'>".$msg_subject."</a></span>
</div>";
echo ($messagesubject."");
echo "<div style='clear: both'></div>";
echo "</div>";
$num += 1;
}
}
if($num == 0){
echo "<p style='text-align:center'>You have no messages in your inbox!</p>";
}
echo "</form>";
} else {
echo "<p style='text-align:center'>You have no messages in your inbox!</p>";
}
?>
</div>
</body>
</html>
Reply.php
<html>
<head>
<link href='http://fonts.googleapis.com/css?family=Lato' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="styling/basic.css" />
<?php
require('config.php');
session_start();
$username = $_SESSION['uname'];
$userid = mysql_query("SELECT `id` FROM `users` WHERE `uname` = '$username'")or die (mysql_error());
$id2=mysql_fetch_row($userid);
$userid=$id2[0];
$userlevel = mysql_query("SELECT `rank` FROM `users` WHERE `uname` = '$username'")or die (mysql_error());
$level=mysql_fetch_row($userlevel);
$userlevel=$level[0];
$query = mysql_query("SELECT * FROM private_messages WHERE to_user='$username'");
while ($row = mysql_fetch_assoc($query)){
$msg_id = $row['id'];
}
$query = mysql_query("SELECT * FROM private_messages WHERE to_user = '$username' AND id='$msg_id'");
$numrows = mysql_num_rows($query);
if($numrows != 0){
while ($row = mysql_fetch_assoc($query)){
$msg_id = $row['id'];
$msg_to_user = $row['to_user'];
$msg_to_id = $row['to_id'];
$msg_from_user = $row['from_user'];
$msg_from_id = $row['from_id'];
$msg_subject = $row['subject'];
$msg_content = $row['content'];
$msg_date = $row['date'];
}
}
?>
</head>
<body>
<br />
<ul id="navmenu">
<li><a href="home.php">Home</a></li>
<li><a href="messages.php">Messages</a></li>
<li><a href="#">Friends</a></li>
<li><a href="#">Settings</a><span class="darrow">▼</span>
<ul class="sub1">
<li><a href="#">Account</a></li>
<li><a href="#">Profile</a>
<li><a href="logout.php">Logout</a></li>
</ul>
</li>
<li><a href="#">$<?php $query = mysql_query("SELECT * FROM users WHERE `uname` = '$username'"); while($row=mysql_fetch_array($query)){ echo $row['money']; } ?></a></li>
</ul>
<br />
<div class="page">
<h1>Messages</h1><br />
<p>Message from <b><i><?php echo $msg_from_user; ?></i></b>:</p>
<p><textarea rows="10" readonly style="width: 50%; resize:none;"><?php echo $msg_content; ?></textarea></p>
<b>Response:</b>
<form action="reply.php" method="POST">
<br />Subject: <br />
<input type='text' name='replysubject' style='width: 50%;' value="RE: <?php echo ($msg_subject); ?>" readonly></input>
<textarea rows="10" name="replycontent" style="width: 50%; resize:none;"></textarea><br/>
<input type="submit" name="replybutton" class="button"/>
</form>
<?php
if ($_POST['replybutton']){
$subject = $_POST['replysubject'];
$content = $_POST['replycontent'];
?>
<?php
if ($subject && $content){
$date = date("M d, Y");
$query = mysql_query("SELECT * FROM private_messages WHERE content = '$content' AND date = '$date'");
$numrows = mysql_num_rows($query);
if ($numrows == 0){
$query2 = mysql_query("SELECT * FROM private_messages WHERE id='$msg_id' AND to_user='$username'");
$numrows2 = mysql_num_rows($query2);
if ($numrows2 == 1){
$row = mysql_fetch_assoc($query);
$to_id = $row['from_id'];
$to_user = $row['from_user'];
mysql_query("INSERT INTO private_messages VALUES ('', '$msg_from_user', '$msg_from_id', '$msg_to_user', '$msg_to_id', '$subject', '$content', '$date')");
echo "Your reply has been sent successfully! <a href='messages.php'>Inbox</a>";
} else
echo "No message was sent. An error has occured.";
} else
echo "You can NOT resend the same message.";
} else {
echo "You did not supply a subject and/or message to respond with.";
}
} else
echo "You must type a response to send this message!";
?>
</div>
</body>
</html>
我有一个包含相应数据集的数据库。有任何想法吗?谢谢!
答案 0 :(得分:0)
虽然该代码中有很多可以使用的工作,但这主要是你的问题
$query = mysql_query("SELECT * FROM private_messages WHERE to_user='$username'");
while ($row = mysql_fetch_assoc($query)){
$msg_id = $row['id'];
}
看到你在循环的每次传递中覆盖$msg_id
,因为除了用户名之外没有其他查询条件,我想你得到id最高的记录,或者你把它放在最新的记录中。
答案 1 :(得分:0)
在message.php中,将此行更改为:
$messagesubject = "<div id='center'>
<div id='toggle'><a href='reply.php?id=".$msg_id."'>".$msg_subject."</a></span>
</div>";