2014-07-29 2 views
1

После получения результатов из mysql можно сгруппировать элементы массива с теми же значениями из поля id_group и обернуть их в элементы div. Может ли кто-нибудь дать мне советы?Оберните элементы массива в divs на основе того же значения

Вот результат я хочу:

<div class="id_group_1"> 
    <div>comment from group 1</div> 
    <div>comment from group 1</div> 
    <div>comment from group 1</div> 
</div> 

<div class="id_group_2"> 
    <div>comment from group 2</div> 
    <div>comment from group 2</div> 
    <div>comment from group 2</div> 
    <div>comment from group 2</div> 
    <div>comment from group 2</div> 
</div> 

PHP

$id_group = $_POST["group"]; 
    $reply = $_POST["reply"]; 
    $sql = "SELECT a.comments,b.name,a.id_group from `reviews` a 
      INNER JOIN `users` b 
      ON a.app_id = b.id 
      WHERE a.post_name = ? 
      AND a.id_group IN ($in) 
      ORDER BY a.id_group"; 

    $users = $dbh->prepare($sql); 
    $users->bindValue(1,$reply); 
    $i = 3; 
    foreach ($id_group as $id) { 
    $users->bindValue($i++, $id); 
    } 
    $users->execute(array_merge(array($reply), $id_group)); 

    //*****Here*****// 
    foreach($users as $row) 
    { 
    echo "<div>".$row["comments"]."<br>Written by ".$row["name"]."</div>"; 
    } 

ответ

2
$rows = $users->fetchAll(PDO::FETCH_ASSOC); 
$arrayByGroup = array(); 

$id = null; 
foreach ($rows as $r) { 
    if($id != $r['id_group']) { 
    if (!is_null($id)) { 
     echo '</div>'; 
    } 
    $id = $r['id_group']; 
    echo '<div class="id_group_' . $id . '">'; 
    } 
    echo "<div>".$r["comments"]."<br>Written by ".$r["name"]."</div>"; 

} 
echo '</div>' 

Edit, сделанные на основе понимания Matt Барретта.

1

Как вы знаете значение id_groups и вы заказали результаты с помощью id_group, вы можете использовать цикл while для вывода данных, а id_group == id, а затем использовать другой цикл while для вывода следующего div.

Это, очевидно, больше предложений, чем полный и всесторонний ответ, но у меня нет достаточного количества комментариев, чтобы добавлять комментарии, поэтому отправляйте его как ответ, как вы просили предложения - надеюсь, что все в порядке!

Смежные вопросы