Hey zusammen,
ich habe vor eine Nachrichtenfunction zu erstellen.
Nun hat jeder User die Möglichkeit auch 1ne Nachricht an mehrere User zu senden.
Es wird ein Formular erstellt und Checkboxen für jeden User. Die userId ist dann die Value der Checkbox.
Die SenderId erhalte ich dann über die Session.
Mein Tabellen Aufbau habe ich mir so gedacht:
messageId (INT) |
senderId (INT) | empfaengerId (INT) |
Nun gehen wir es mal durch:
Wenn der User an einem anderen User eine Nachricht sendet sieht die Tabelle so aus. Stellt mich vor keine Probleme.
messageId (INT) | senderId (INT) | empfaengerId (INT) |
1 | 1 | 2 |
Wenn der User nun an mehrer User eine Nachricht sendet, habe ich geplant, dass die Tabelle so aussieht:
messageId (INT) | senderId (INT) | empfaengerId (INT) |
1 | 1 | 2,3,4,5,6,7 |
Nun stell ich mir die Frage wie ich denn die ID's in der Spalte empfaengerId weiterverarbeiten soll.
Ich habe mir überlegt alle auszulesen und dann mittels explode am Komma zu trennen.
Dann würde es wie folgt ausssehen:
<?php
$ids = "2,3,4,5,6,7";
$userId = explode(",", $ids);
echo "<pre>";
var_dump($userId);
echo "</pre>";
/*
Inhalt $userId (array):
array(6) {
[0]=>
string(1) "2"
[1]=>
string(1) "3"
[2]=>
string(1) "4"
[3]=>
string(1) "5"
[4]=>
string(1) "6"
[5]=>
string(1) "7"
}
*/
Alles anzeigen
Nun dachte ich mir mittels einer for-schleife durch das Array $userId zu iterieren und dann jedem User die Nachricht zu senden.
Beispiel:
for($i = 0; $i < count($userId); $i++){
// $userId[$i] ist in jedem Durchgang ein String
sendMessage($userId[$i]);
}
$userId[$i] ist dann die Zahl und es wird für so viele Keys im Array die Function sendMessage aufgerufen. Das heißt für jeden User an dem die Nachricht gesendet wurde.
Wird es dann nicht bei einer großer Auswahl zu langsam?
Habt ihr Verbesserungsvorschläge?
Kann man es weiter optimieren?
Freue mich sehr auf eure Antworten.
Grüße,
Stef