2016-09-30 9 views
1

私はこのテーブルを持っていて、ユーザのメッセージを保管しています。それはid(PK), username, message, time, dateです。アカウントにログインすると、すべてのチャットの一覧が表示されます。しかし、このDBはメッセージを表示するだけです。どうやら最初のDBに接続された別のテーブルを作成する必要がありますか、または私がチャットしている人のユーザー名を取得する方法でフィルターをかける必要がありますか?ユーザー名を取得することで意味するのは、私が伝えた人々のこのリストがあるということです。これらのユーザー名を取得する方法はありますか?Mysql DBのトラブル

これがはっきりしない場合は申し訳ありません。もっと説明が必要な場合は、すぐに教えてください。 この問題は私にとっては非常に複雑です。ところで

は、ここでのコードは次のとおりです。

<div id='messages'> 
     <nav> 
      <ul id=''> 
       <?php 
        $m = new mysqli('localhost', 'root', 'xamppprogram', 'blue_messenger'); 
        if($m === FALSE){ 
         include('./errordb2.php'); 
         die(); 
        } 

        $sql = "SELECT * FROM messages WHERE username='$username'"; 
        $results = $m->query($sql); 
        if($results->num_rows > 0){ 
         while($r = $results->fetch_assoc()){ 
          // What to do here? 
         } 
        } else { 
         echo "No new messages."; 
        } 
       ?> 
      <ul> 
     <nav> 
    </div> 
    <div id='chat-content'> 
+1

あなたのコードがある????? –

+0

@AmitKumarPawar Um ...コードはありませんが、試してみます... – BoeNoe

+1

メッセージテーブルをuserテーブルにリンクする必要があります。メッセージを送信している人のuserIDをメッセージテーブル内の外部キー – andrewsi

答えて

3

あなたがあなたとチャットしているユーザーの名前を格納toUserのように、テーブルの上に別の列を追加することができます。その後、あなたのSQLでGROUP BY toUserの条件を使用することができます。これは最も簡単な解決策ですが、他の人が質問のコメントに述べたように、リレーショナルデータベースが最適です。

ここではユーザー入力が使用されているようで、SQLインジェクションが可能なので、プリペアドステートメントを使用することをお勧めします。

参考文献: