У меня есть раздел уведомлений на моем сайте, и я получаю данные из своей таблицы. Могут быть дочерние уведомления, назначенные их родителям, поэтому у меня есть parent_id в таблице, как показано ниже:
Ниже представлен массив, который я получаю
Array
(
[0] => stdClass Object
(
[user_title] => Mr
[user_firstname] => Richard
[user_lastname] => Knight-Gregson
[assignee_title] => Mr
[assignee_firstname] => Richard
[assignee_lastname] => Knight-Gregson
[created] => 2015-03-26 11:40:20
[id] => 61
[user_id] => 88
[description] => message for user rkg uid 88
[assignee] => 88
[parent_id] =>
[cc] =>
[bcc] =>
[status] => 0
)
[1] => stdClass Object
(
[user_title] => Mr
[user_firstname] => Richard
[user_lastname] => Knight-Gregson
[assignee_title] => Mr
[assignee_firstname] => Richard
[assignee_lastname] => Knight-Gregson
[created] => 2015-03-26 12:45:47
[id] => 71
[user_id] => 88
[description] => This is child
[assignee] => 88
[parent_id] => 61
[cc] =>
[bcc] =>
[status] => 0
)
[2] => stdClass Object
(
[user_title] => Mr
[user_firstname] => Ted
[user_lastname] => Chiles
[assignee_title] => Mr
[assignee_firstname] => Richard
[assignee_lastname] => Knight-Gregson
[created] => 2015-03-27 10:11:56
[id] => 207
[user_id] => 47
[description] => cc 88
[assignee] => 88
[parent_id] =>
[cc] => 88
[bcc] => 112
[status] => 0
)
[3] => stdClass Object
(
[user_title] => Mr
[user_firstname] => Richard
[user_lastname] => Knight-Gregson
[assignee_title] => Mr
[assignee_firstname] => Richard
[assignee_lastname] => Knight-Gregson
[created] => 2015-03-27 10:17:31
[id] => 209
[user_id] => 88
[description] => sadfasdfasd
[assignee] => 88
[parent_id] =>
[cc] => 88
[bcc] => 0
[status] => 0
)
)
Вот код, который у меня есть на данный момент, чтобы перебрать массив, что мне нужно добавить к этому, чтобы получить все элементы, которые имеют parent_id, а затем отображать их под их репрессорным родителем в списке...
<table class="notifications-table" border="1">
<tr>
<th>S No.</th><th>Date</th><th>Employee</th><th id="details">Details</th><th>Assignee</th><th>Action</th>
</tr>
<?php foreach($notifications as $row){ ?>
<?php foreach($row as $k){
} ?>
<tr <?php if($row->status){ echo "class='resolved'"; } ?> id="row-<?=$row->id;?>">
<td><?=$row->user_id?></td><td><?=date('d M, H:i',strtotime($row->created));?></td>
<td><?=$row->user_title.' '.$row->user_firstname.' '.$row->user_lastname;?></td>
<td>
row id is : <?=$row->id.' == '.$row->parent_id; ?>
<?php //echo $row->id.' == '.$row->parent_id; ?>
<?=$row->description; ?><span data-parent-id="<?=$row->id;?>" data-user-id="<?=$row->user_id;?>" id="add_not" data-featherlight="#send_child_message" data-id="add_child_notification" class="glyphicon glyphicon-plus"></span>
</td>
<td><?=$row->assignee_title.' '.$row->assignee_firstname.' '.$row->assignee_lastname;?></td>
<td><input <?php if($row->status){ echo "disabled"; } ?> value="<?=$row->id;?>" data-action="not" type="checkbox" /></td>
</tr>
<?php } ?>
</table>
Я пробовал несколько вещей, но просто не могу получить то, что хочу! С уважением!
Код, который у вас есть, кажется правильным. Я смог взять большую часть вашей структуры и перебрать ее и получить то, что вы видите на скриншоте:
Я смог увидеть 2 строки информации, потому что я использовал только 2 элемента (не все).
Хорошо, теперь я вижу то, что вы пытаетесь сделать. Вы хотите отобразить сведения о родительском элементе id, который в этом примере будет моей "строкой 2", поскольку идентификатор строки 71 является "дочерним элементом" идентификатора строки 61.
Если мое предположение верно, вам нужно связать элементы друг с другом на основе этой идеи родителя и ребенка.
Перед тем, как закрыть td
"Подробности", вы можете добавить...
<?php foreach($notifications as $row2){ ?>
<?php if ($row2->id == $row->parent_id) : ?> PARENT DESC: <?= $row2->description; ?><?php endif; ?>
<?php } ?>
Который теперь должен позволить вам использовать некоторые значения родительских свойств.