as4s1n
New Member
- Messages
- 174
- Reaction score
- 4
- Points
- 0
My PHP script for a PM (private message) inbox only returns one row and I am not sure what is wrong.
Please help.
PHP:
<a href="index.php?p=createMessageForm">Create Message</a>
<table border="0" cellpadding="2" cellspacing="2" id="inbox">
<tr>
<th width="300">From</th><th width="500">Subject</th><th width="200">Date</th>
</tr>
?>
<?php
if(!isset($_SESSION['loggedin']))
echo "<td colspan=\"3\">You must first <a href=\"index.php?p=signInForm\">log in</a> to view your messages</td>\n";
else {
$curUser = $_SESSION['loggedin'];
$query = "SELECT id FROM users WHERE username = '$curUser'";
$result = mysql_query($query);
if(!$result)
writeError(mysql_error());
else {
while($row=mysql_fetch_array($result, MYSQL_ASSOC)) {
$curUserId = $row['id'];
}
}
$query = "SELECT * FROM mail WHERE toUser = '$curUserId'";
$result = mysql_query($query);
if(!$result)
writeError(mysql_error());
else {
while($row=mysql_fetch_array($result, MYSQL_ASSOC)) {
$id = $row['id'];
$from = $row['from'];
echo "<title>$curUser's Inbox</title>";
$sbj = substr($row['subject'],0, 100);
$date = $row['date'];
$query = "SELECT username FROM users WHERE id = '$from'";
$result = mysql_query($query);
if(!$result)
writeError(mysql_error());
else {
while($row=mysql_fetch_array($result, MYSQL_ASSOC)) {
$from = $row['username'];
?>
<tr>
<?php echo "<td><a href=\"index.php?p=viewMessage&&id=$id\">$from</a></td><td><a href=\"index.php?p=viewMessage&&id=$id\">$sbj</a></td><td><a href=\"index.php?p=viewMessage&&id=$id\">$date</a></td>"; ?>
</tr>
<?php
}
}
}
}
}
?>
</table>
Please help.