-1

私は助けが必要です。複数のユーザーにメッセージを送信しようとしています。または、受信者に電話をかける可能性があります。これまでのところ、以下のコードは 1 人の受信者にのみメッセージを送信するように機能します。ユーザー名をコンマで区切ることができる通常の形式を使用し、mysql データベースに保存されている間にすべてのユーザーにメッセージを送信できるようにしたいと考えています。これはデータベース ベースの電子メール システムであり、別の電子メール アドレス システムへの送信ではありません。

jqueryを使用してユーザー名フィールド内のユーザー名を区切るためにコンマを取得しましたが、その後行き詰まり、その単純なjqueryは以下のコード内に含まれていません.

爆発とそれぞれについて理解していないので、もっと簡単な質問をさせてください。id2 を受信者として使用して複数のメンバーにメッセージを送信し、メッセージに誰が、何のフィールドに情報を追加するかを考えてみましょう。どうしたらいいのだろう。

 mysql_query('insert into pm (id, id2, title,  who, what, user1, user2, message, timestamp, user1read,    user2read)values("'.$id.'", "1", "'.$title.'",   "'.$who.'",  "'.$what.'", "'.$_SESSION['id'].'", "'.$dn1['recipid'].'", "'.$message.'", "'.time().'", "yes", "no")')

これを試してみましたが、メッセージは 1 人のユーザーにしか送信されません。

4

2 に答える 2

1

複数のユーザーにメッセージを送信できるようにするには、データベースを再構築する必要があります。それを行う他の方法はありません。

複数の受信者 ID を格納するために 1 つの ID フィールドを使用するべきではありません。

テーブルを構成する方法は次のとおりです(受信者と送信者はすべてシステムに登録されているユーザーであると想定しています):

  • メッセージテーブル:メッセージID、送信者ID、送信日時、件名、メッセージ、添付ファイルなど
  • メッセージ受信者テーブル: メッセージ ID、受信者 ID (単一の受信者のみ!)、ステータス (つまり、既読/未読)

個々の受信者を「メッセージ受信者」テーブルに個別に保存し、メッセージ ID を介して「メッセージ」テーブルにリンクする必要があります。

お役に立てれば。

于 2015-08-26T03:47:40.247 に答える
1

爆発と foreach の両方を使用する必要があります。

$recipients = explode(',',$recip);
foreach ($recipients as $r) {
    //We check if the recipient exists
    $dn1 = mysql_fetch_array(mysql_query('select count(id) as recip, id as recipid, (select count(*) from pm) as npm from header where username="'.$r.'"'));
        if($dn1['recip']==1)

                 echo 'recip exists';



        else
        {
       //Otherwise, we say the recipient does not exists
       $error = 'The recipient does not exists.';

        }
}
于 2013-09-14T05:37:51.500 に答える