PHP Mehrere Userids auslesen...

rocket81

Lt. Commander
Registriert
Dez. 2007
Beiträge
1.054
Hallo,
ich sitze hier vor einem kleinen Problem und zwar geht es darum, dass ein Script bestimmte Userids aus einer Datenbank auslesen soll und an jeden dieser User eine PM schickt.

Der Befehlt für die PM lautet so:

PHP:
sendpm($_SESSION['authid'],$uid,'News eingesendet',$_SESSION['authname'].' hat eine News mit dem Title [b]'.$titel.'[/b] eingesendet, die nun im Adminmenü freigeschaltet werden muss.',-1);

$uid ist logischer weise die zuvor ausgelesene Userid. ;)

Da allerdings mehre Userids ausgelsen werden z.b. (1,10,35) werden diese in der Variable $row nur als 11035 gespeichert.

Wie setze ich es um, dass php die id's von einander trennt und an jede id eine pm schickt?

danke für eure hilfe :)
 
Die Variable $row ist ein Array mit Daten, also 3 Zeilen in deinem Bsp.

Das heißt du müsstest per foreach oder while Schleife die sendpm-Funktion drei mal ausführen. So wie du es beschreibst wird sie nur 1 mal ausgeführt mit dem falschen Inhalt (an die nicht vorhandene Uid 11035).

Also maln Beispiel:

PHP:
$sql_user = mysql_query("SELECT * FROM user;");
while($row_user = mysql_fetch_array( $sql_user ) {
   sendpm($_SESSION['authid'],$row_user['uid'],'News eingesendet',$_SESSION['authname'].' hat eine News mit dem Title [b]'.$titel.'[/b] eingesendet, die nun im Adminmenü freigeschaltet werden muss.',-1);  
}

Oder per foreach-Schleife:

PHP:
$userdataarr = ...;
foreach( $userdataarr as $value ) {
   sendpm($_SESSION['authid'],$value,'News eingesendet',$_SESSION['authname'].' hat eine News mit dem Title [b]'.$titel.'[/b] eingesendet, die nun im Adminmenü freigeschaltet werden muss.',-1);  
}

Wichtig ist allerdings nur das die Funktion für jede Uid einzeln aufgerufen wird. Aber als Tipp würde ich dir raten die Funktion nur einmal aufzurufen und stattdessen sie per Schleife mehrere male aufzurufen solltest du das Array in der Funktion bearbeiten und dort drin die Schleifen probieren.

MfG, DM.
 
Zuletzt bearbeitet:
eigentlich musst du den String nur in ein Array zerlegen und dieses durchlaufen.

PHP:
$uid_array = explode(",",$uid);
foreach($uid_array as $new_uid) {
sendpm($_SESSION['authid'],$new_uid,'News eingesendet',$_SESSION['authname'].' hat eine News mit dem Title [b]'.$titel.'[/b] eingesendet, die nun im Adminmenü freigeschaltet werden muss.',-1);  
}

Wenn $uid nur einen Wert erhält, kommt beim explode auch nur ein Array mit einem Wert raus.
 
Alles klar, danke für eure Hilfe.
Hab jetzt alles hin bekommen :)

Gruß
 
Zurück
Oben