为什么我的PHP代码不起作用?

时间:2014-11-11 02:36:12

标签: php html mysql database

我试图将它放到他们点击的哪一行,它将它放在一个名为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">&#9660;</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">&#9660;</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>

我有一个包含相应数据集的数据库。有任何想法吗?谢谢!

2 个答案:

答案 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>";