foreach() döngüsü içine modali yerleştiriniz ve düzenle butonuna id atayınız her butonun kendine ait modali olması için #edit<?= $row->product_id ?> tarzında kullanınız , modal div idsinede bunu uygulayın.
Örnek kendi projemde kullandığım kod :
<td>
<div class="form-button-action">
<button type="button" data-toggle="modal" data-target="#edit<?= $row->id ?>" class="btn btn-primary btn-md mx-1">
<i class="fa fa-edit"></i> Düzenle
</button>
<div class="modal fade" id="edit<?= $row->id ?>" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h3 class="modal-title" id="exampleModalLongTitle">Sayfa Düzenle</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form action="<?= base_url("Admin/pages/update/" . $row->id) ?>" method="POST">
<div class="form-group">
<label>Sayfa Başlık</label>
<input type="text" value="<?= $row->title ?>" class="form-control" name="title" aria-describedby="helpId">
</div>
<div class="form-group mb-0">
<label>Sayfa İçerik</label>
<textarea id="summernote2" name="content"><?= $row->content ?></textarea>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">Güncelle</button>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">İptal</button>
</div>
</div>
</div>
</div>
Çok teşekkür ederim hocam

önerdiğiniz gibi oldu.