2017-02-27 31 views
0

可以說我的數據庫中有數據,某些行具有相同的數據。在數據庫中顯示特別是具有相同數據的行

id|value|message 
1|001. |one 
2|001. |five 
3|002. |four 
4|001. |hello 
5|001. |sup 
6|002. |sure? 

是否有可能我echo所有的消息數據與001一起在一個<div class="display"></div>和那些與002具有相同<div class="display></div>有通過具有兩個<div class="display"></div>顯示的兩個不同的值的count

我曾嘗試使用

$sql =<<<EOF 
SELECT value, COUNT(value) AS NumOccurrences FROM table WHERE id != '$log_id' GROUP BY value, message ORDER BY id DESC; 
EOF; 
$ret = $db->query($sql); 

while ($row = $ret->fetchArray(SQLITE3_ASSOC)) 
{ 
    $value = $row['value']; 

    echo "<div class='display'>$value</div>"; 
}  

但上面的代碼 PHP。這是每個div每個value

<div class="display">001</div> 
<div class="display">001</div> 
<div class="display">002</div> 
<div class="display">001</div> 
<div class="display">001</div> 
<div class="display">002</div> 

但我想是這樣的

<div class="display">001001001001</div> 
<div class="display">002002</div> 

請我是新來PHP並搜查很難回答。這可能嗎?

+0

嘗試GROUP_CONCAT功能 –

回答

0

不改變查詢,你可以做這樣的事情:

$by_val = array(); 
    while ($row = $ret->fetchArray(SQLITE3_ASSOC)) 
    { 
     $value = $row['value']; 
     if(!isSet($by_val[$value])) $by_val[$value] = ''; 
     $by_val[$value] .= $value; 
    } 

    foreach($by_val as $key => $str) { 
    echo "<div class='display'>".$str."</div>"; 
    } 
+0

優秀。這工作 –

+0

對不起,請嘗試使用與另一個表相同的系統來回顯消息,但沒有工作。我已經編輯了我的問題。請幫忙。這一次我試圖用一個div中的相同值回顯消息。 –

+1

@OkeTega改變'$ by_val [$ value]。= $ value;'to'$ by_val [$ value]。= $ row ['message'];' – Sojtin

相關問題