2017-10-28 76 views
-4

我有這個在我的數據庫的例子:如何在MySQL數據庫上查詢此信息?

tA------tB 
lewbr - blabla1 
lewbr - blabla2 
lewbr - blabla3 
blabla1 - lewbr 
blabla2 - lewbr 
blabla3 - lewbr 

什麼我需要做SELECTlewbr得到所有文本?

例子:List of LewBr: blbla1, blabla2, blabla3

我在一家軟件遊戲有這個在我的PHP:

public function getAllFriends($oi1) { 
      $a = $this->plugin->provider->db->query("SELECT * FROM amigos WHERE tA='$oi1'"); 
      $b = mysqli_fetch_assoc($a); 
      return $b; 
    } 

EVENT

    $msg = null; 
        foreach($this->getAllFriends($player) as $friend => $p) { 

         if($friend == 'p2') { 
          $msg .= "$p, "; 
         } 
        } 
        $sender->sendMessage("HI: $msg"); 
        return; 

但它只返回1個播放列表的..像

List of LewBr: blabla1, 
+0

遺憾的英語不好。 –

+0

嗨,你誤解了mysqli_fetch_assoc。該函數將從查詢執行中返回1行結果。不是全套。所以你的事件在事件循環1行,所以1結果。在你的函數中返回$ a並循環。 – Nic3500

+0

我已經測試過你說什麼,也不太適用..:/ –

回答

0

如果你想在與逗號分隔值列表中的同一行中的所有值,你可以使用GROUP_CONCAT

"SELECT group_concat(tb) as my_amigos 
FROM amigos WHERE tA='$oi1' 
group by tA" 

,你可以很容易地obutain列表中沒有的foreach ...只是訪問my_amigos列如:

$row = mysqli_fetch_assoc($a); 
    var_dump($row['my_amigos']); 

,如果你不希望逗號作爲分隔符可以使用空間如:

"SELECT group_concat(tb SEPARATOR ' ') as my_amigos 
FROM amigos WHERE tA='$oi1' 
group by tA" 
+0

我在這件事上做了什麼? –

+0

只是保持它? –

+0

答案更新了一個建議希望是明確的.. – scaisEdge