Ich bin auf der Stufe, wo ich gerade erst anfangen, PHP und MySQL zu verstehen, aber ich bin fest. Ich habe ein Tutorial von developphp.com Studium WI, in dem Shawn baut ein NachrichtensystemProblem mit SQL-Abfrage und PHP
https://www.youtube.com/playlist?list=PLgsYR-L3Uwbps9E-xIQPajQOiZVbOo6lr
Ich versuche, das Tutorial neu zu gestalten, damit es meinen Bedürfnissen entspricht. Ich habe eine Mail-Seite namens pm_inbox.php gebaut, die gut funktioniert, es gibt mir Mail, die mir in einer DESC-Bestellung gesendet wurde.
pm_inbox.php
$sql = "SELECT pm.*, u.avatar, u.country
FROM pm AS pm
LEFT JOIN users AS u ON u.username = pm.sender
WHERE (pm.receiver='$u' AND pm.parent='x' AND pm.rdelete='0')
OR (pm.sender='$u' AND pm.sdelete='0' AND pm.parent='x' AND pm.hasreplies='1')
ORDER BY senttime DESC";
$query = mysqli_query($db_conx, $sql);
$statusnumrows = mysqli_num_rows($query);
// Gather data about parent pm's
if($statusnumrows > 0){
while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
$pmid = $row["id"];
//div naming
$pmid2 = 'pm_'.$pmid;
$wrap1 = 'pm_message_wrap_'.$pmid;
//button naming
$btid2 = 'bt_'.$pmid;
//textarea naming
$rt = 'replytext_'.$pmid;
//button naming
$rb = 'replyBtn_'.$pmid;
$receiver = $row["receiver"];
$sender = $row["sender"];
$subject = $row["subject"];
$message = $row["message"];
$time = $row["senttime"];
$rread = $row["rread"];
$sread = $row["sread"];
$avatar = $row["avatar"];
$country = $row["country"];
// Start to build our list of parent pm's
$mail .= '<div id="'.$wrap1.'" class="pm_message_wrap">';
$mail .= '<table id="inboxMailMessages" width="100%" align="center" cellpadding="2">
<tr>
<td width="6%"><input name="toggleAll" id="toggleAll" type="checkbox"/></td>
<td width="19%"><a href="user.php?u='.$sender.'" title="'.$sender.'"><img src="user/'.$sender.'/'.$avatar.'"width=100" height="100" border="0" /></a></td>
<td width="75%">
<div class="inboxmailRollover">
<p class="mailboxp">Subject: ' .$subject. '<br></p>
<p class="mailboxp"><a href="user.php?u=' . $sender . '">From:'.$sender. '</a><br></p>
<p class="mailboxp"><a href="inboxMain.php?u=' . $u . '">' .$country. '</a><br></p>
<p class="mailboxp">' .$message. '</p>
</div>
</td>
</tr>
</table>';
$mail .= '<hr>';
$mail .= '</div>';
, was ich versuche zu tun ist, wenn jemand das Land Link auf klickt pm_inbox.php es sie durch eine andere Seite nehmen genannt inboxMain.php, in dem sie die Personen zeigen Details in einem Container, der die Mail wie beim Absender, dem Betreff und dem Land gesendet hat.
Ich habe 4 Mail auf pm_inbox.php, die Leute haben mich geschickt. wenn ich auf den Länderlink klicke, bringt es mich zu inboxMain.php, aber anstatt mir nur die Personendetails zu zeigen, die mir die Mail geschickt haben, zeigt es alle 4 Personen Details in 4 verschiedenen Containern. Ich weiß, es ist ein SQL-Abfrage-Problem auf inboxMain.php, aber kann es nicht ausarbeiten. Ich frage mich, ob mir bitte jemand helfen kann.
inboxMain.php
$sql = "SELECT pm., u.avatar, u.country
FROM pm AS pm
LEFT JOIN users AS u ON u.username = pm.sender
WHERE pm.id='$pmid' AND pm.sender='$u' AND pm.sdelete='0' AND pm.parent='x'";
$query = mysqli_query($db_conx, $sql);
$statusnumrows = mysqli_num_rows($query);
// Gather data about parent pm's
if($statusnumrows > 0){
while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
$pmid = $row["id"];
//div naming
$pmid2 = 'pm_'.$pmid;
$wrap2 = 'reply_profile_wrap'.$pmid;
//button naming
$btid2 = 'bt_'.$pmid;
//textarea naming
$rt = 'replytext_'.$pmid;
//button naming
$rb = 'replyBtn_'.$pmid;
$receiver = $row["receiver"];
$sender = $row["sender"];
$subject = $row["subject"];
$message = $row["message"];
$time = $row["senttime"];
$rread = $row["rread"];
$sread = $row["sread"];
$avatar = $row["avatar"];
$country = $row["country"];
// Start to build our list of parent pm's
$reply_profile .= '<div id="'.$wrap2.'" class="reply_profile_wrap">';
$reply_profile .= '<table id="replyProfile" width="100%" border="0">
<tr>
<td width="19%"><a href="user.php?u='.$sender.'" title="'.$sender.'"><img src="user/'.$sender.'/'.$avatar.'"width=75" height="75" border="0" /></a></td>
<td>
<p class="replyProfilep">Subject: ' .$subject. '<br></p>
<p class="replyProfilep"><a href="user.php?u=' . $sender . '">From:'.$sender. '</a><br></p>
<p class="replyProfilep">Country: ' .$country. '</p>
</td>
</tr>
</table>';
$reply_profile .= '</div>';
Wenn Sie nur eine Mitteilung wünschen, setzen Sie '$ pmid' in der URL-Parameter. Dann benutze 'WHERE pm.id = $ id'. – Barmar
Hallo Barmar. Vielen Dank für Ihre Antwort, es ist sehr nett von Ihnen. Vielleicht war ich nicht klar genug mit meiner Frage, die meine Schuld war und tut mir leid, aber was ich wirklich suche, ist meine Mail-Seite ist in Ordnung. was ich wirklich versuchte zu tun ist, wenn ich auf die Post dränge, wo Land ist, wollte ich zu jenen Personen pm.id gehen, in dem die Post ist, anstatt alles 4 PM zu haben. ich weiß, dass es etwas mit dem SQL zu tun hat Abfrage auf der InboxMain-Seite, die die Ergebnisse erhalten – gary33