2016-07-09 16 views
0

私はPHPとMySQLを理解し始めている段階ですが、私は立ち往生しています。私はここでショーンのWIは、私はそれは私のニーズに合うように、チュートリアルを再設計しようとしていますSQLクエリとPHPのトラブル

https://www.youtube.com/playlist?list=PLgsYR-L3Uwbps9E-xIQPajQOiZVbOo6lr 

メッセージシステムを構築してdevelopphp.comからチュートリアルを勉強してきました。私はpm_inbox.phpという名前のメールページを作成しました。これはうまく動作し、DESCの順序で私に送られたメールを私に渡します。

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>'; 

私は何をしようとしています誰かが、それは人々が表示されますするinboxMain.phpと呼ばれる別のページにそれらを通じかかりますpm_inbox.phpの国のリンクをクリックしたときであります送信者、件名、国のようにメールを送信したコンテナの詳細。

私はpm_inbox.phpに4人の人が私にメールを送ってきました。私が国のリンクを押すと、それは私をinboxMain.phpに連れて行きますが、私に人の詳細を表示するのではなく、私に4つの別々の容器にすべての4人の人々の詳細を示すメールを送ってきました。私はそれがinboxMain.phpのSQLクエリの問題だが、それをうまく処理できないことは分かっている。私は誰かが私を助けることができるのだろうかと思う。

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>'; 
+0

<p class="replyProfilep"><a href="mail.php?id=' . $pmid . '">Country: ' .$country. '</a></p> 

はその後mail.phpに次のようなクエリを使用することができます。次に、 'WHERE pm.id = $ id'を使用します。 – Barmar

+0

こんにちは。あなたの答えは本当にありがとうございます。私は私の誤りである私の質問で十分に明確ではなかったかもしれません。そして、申し訳ありませんが、私が本当に探しているのは私のメールページです。私が本当にやろうとしていたのは、国がどこにいるのかというメールをプッシュするときです。その人のpm.idに行きたいのですが、メールが4 pm.idのすべてではなく、SQLと何か関係があります結果を受け取っているinboxMainページの質問 – gary33

答えて

0

特定の国の周りpm.idを取得し、リンクを張って下さい。あなただけの1つのメッセージをしたい場合は、URLパラメータに `$のpmid`を入れ、

$pmid = $_GET['id']; 
$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"; 
+0

こんにちは。私は約4日前に私は質問を投げて、それは理にかなっていませんでした。申し訳ありませんが、これは私がこの時間を取って戻ってきました。私はちょうど私の質問を再編集し、私が答えのセクションに入れた質問を削除しました。私はちょうどサイトの周りに私の方法を見つけると、あなたが一見を持つことが可能だった今私はそれを更新したのだろうかと思う。あなたができるなら、多くのありがとう。 – gary33

+0

'inboxMain.php'のクエリは' pm_inbox.php'のものと同じです。もちろん、同じ情報を表示しています。 – Barmar

+0

こんにちは、バーマール、申し訳ありませんが迷惑です。私はinboxMain.phpでクエリを変更しました。私は一日中それを試して、それを働かせるが、できないようにしようとしている。私はあなたがフェラを助けてくれたことを感謝します、あなたのことはとても親切です。私はこのコードの問題についてどうやって行くことができるか考えていたのでしょうか。 – gary33