問題に直行しましょう...「phonenumber」という名前のこのテーブルがあります。
+-------------+
| phonenumber |
+-------------+
| 555-123456 |
| 555-999999 |
| 555-888888 |
+-------------+
ここで、「outbox」という名前のこのテーブルにメッセージを挿入して、これらの番号にテキスト メッセージを送信したいと思います。
+------+----------------+---------------------------------------------+
| ID | phonenumber | message |
+------+----------------+---------------------------------------------+
| ...... |
| 321 | 555-123456 | part 1 : lorem ipsum dolor sit amet |
| 322 | 555-999999 | part 1 : lorem ipsum dolor sit amet |
| 323 | 555-888888 | part 1 : lorem ipsum dolor sit amet |
+------+----------------+---------------------------------------------+
それは簡単です。このSQLはその仕事をすることができます:
INSERT INTO outbox (phonenumber, message)
SELECT phonenumber, '$SMSMessage' as message
FROM phonenumber
WHERE purchasedate BETWEEN 2012-01-01 AND 2012-01-31;
テキストメッセージが160文字を超えると問題が発生します。分割する必要があり、この場合、分割されたメッセージの 2 番目の部分を「outbox_multipart」という名前の別のテーブルに保存し、「outbox」の ID 番号を保持して、テーブルが次のようになるようにする必要があります。
+------+----------------+----------+----------------------------------+
| ID | phonenumber | outboxID | message |
+------+----------------+---------------------------------------------+
| ...... |
| 1025 | 555-123456 | 321 | part 2 : hello there! |
| 1026 | 555-999999 | 322 | part 2 : hello there! |
| 1027 | 555-888888 | 323 | part 2 : hello there! |
+------+----------------+---------------------------------------------+
注意: outbox.ID は、outbox_multipart.outboxID と関連しています。
そして、テキストメッセージを挿入するためのこのPHPループがあります:
foreach ($CutMessage as $index => $SMSMessage)
{
if ($index == 0) {
**INSERT FIRST PART OF MESSAGE TO OUTBOX TABLE**
}else{
**INSERT SECOND / OTHER PART OF MESSAGE TO OUTBOX_MULTIPART TABLE**
}
}
PHPでこれを正しく行う方法は? ありがとうございました。