0

私はプライベートメッセージシステムを持っており、会話のすべてのユーザー(送信者を除く)のIDを返すこの関数を持っています:

function findOtherUsersInConversation($conversation_id) {
    $sender = findMessageSenderId($conversation_id);
    $query  = mysql_query("SELECT user_id FROM message_partecipant WHERE conversation_id =   '$conversation_id' AND user_id !=$sender");
    while ($row = mysql_fetch_array($query)) {
        $user_id = $row['user_id'];
        print_r($user_id);
    }
}

print_rは、次のようにID(たとえば、id100およびid 101)を返します。

100101//which is not what i'm trying to do

データベースでユーザー名を検索する別の関数があるので、ユーザーIDごとに、次の形式でユーザー名を取得します。

echo usernameFromId($user_id)// this should echo out all the username like this (user a, user b, user c)

foreachループを実行する必要があると思いますが、その方法は考えられません。

4

4 に答える 4

1

これを試して:

function findOtherUsersInConversation($conversation_id){
    $sender = findMessageSenderId($conversation_id);
    $query =  mysql_query("SELECT user_id FROM message_partecipant WHERE conversation_id =   '$conversation_id' AND user_id !=$sender");
    $users = array();
    while ($row = mysql_fetch_array($query)) {
        $users[] = usernameFromId($row['user_id']); // fetch user name and add it to array
    }
    return implode(', ', $users); // return a string separated by commas
}

findOtherUsersInConversation(10); // conversation id 10
于 2012-10-01T10:12:15.373 に答える
1

このようにしてみてください

function findOtherUsersInConversation($conversation_id) {
$sender = findMessageSenderId($conversation_id);
$query  = mysql_query("SELECT user_id FROM message_partecipant WHERE conversation_id =   '$conversation_id' AND user_id !=$sender");
$cnt=0;
while ($row = mysql_fetch_array($query)) {
    $user_id = $row['user_id'];
   if($cnt==0):
       $comma_separated .=$user_id;
   else: 
      $comma_separated .=",".$user_id;
   endif;   
   $cnt++;
}
 return $comma_separated
}

$getID=findOtherUsersInConversation(10); 

$arrayID= explode( ',', $getID);// split string from comma(,)

print_r($arrayID);// print all ID's as you want

これがお役に立てば幸いです。

于 2012-10-01T10:37:35.840 に答える
0
function findOtherUsersInConversation($conversation_id){
  $sender = findMessageSenderId($conversation_id);
  $query =  mysql_query("SELECT user_id FROM message_partecipant WHERE conversation_id ='$conversation_id' AND user_id !=$sender");
  $usernameArr = array();
  while ($row = mysql_fetch_array($query)) {
    $user_id= $row['user_id'];
    array_push($usernameArr, usernameFromId($user_id));
  }

  $comma_separated = implode(",", $usernameArr);

  echo $comma_separated;
}
于 2012-10-01T10:20:01.377 に答える
0

情報のみの配列を表示する場合は、次を試してください。

var_dump($array);

それ以外の場合は、foreachで試して、配列を出力してください。

foreach($array as $var){
    echo $var;
}
于 2012-10-01T10:23:05.437 に答える