Bilgi için teşekkürler, ufak bir detay gözümden kaçtığı için bu bilgiye ihtiyaç duymuştum fakat burada sorun sizin foreach içerisinde return değerini kullanmanız. Kısaca kullandığınız kod bloğu yanlış. tabi kod bluğunuzun tamamnı göremediğimiz için belki bir yerde return yapmanız gerekiyordur fakat bu foreach in içerisinde olamaz. İlk değer döndükten sonra return ile dönüş yapıyorsunuz ve foreachten çıkıyorsunuz aynı break kullandığınızı düşünün.
Örnek vermek gerekirse;
foreach ($_POST['guard'] as $q) {
//Buraya echo ile $q basarsam iki veride geliyor. Ama iki tane dönmüyor. şu set $q da.
//$last_id = $db->lastInsertId(); Bunu neden kullandığınızı anlamadım. Eğer foreach ten önce yukarıda bir insert işlemi yapıyorsanız bu kod doğru bilgi verecektir.
$query = $db->prepare("UPDATE customers SET $q =1 WHERE id=?");
$insert = $query->execute(array(
"1"
));
} <div class="col-md-4 col-lg-4">
<div class="custom-control custom-switch switch-success">
<input type="checkbox" class="custom-control-input" name="guard[]" id="kullanıcı" value="sUsers">
<label class="custom-control-label" for="kullanıcı">Kullanıcı Yönetimi</label>
</div>
<div class="custom-control custom-switch switch-success">
<input type="checkbox" class="custom-control-input" name="guard[]" id="parakende" value="sRetailPrice">
<label class="custom-control-label" for="parakende">Perakende Fiyat Görünsün</label>
</div>
<div class="custom-control custom-switch switch-success">
<input type="checkbox" class="custom-control-input" name="guard[]" id="sifre" value="sPassword">
<label class="custom-control-label" for="sifre">Şifre İşlemleri</label>
</div>
<div class="custom-control custom-switch switch-success">
<input type="checkbox" class="custom-control-input" name="guard[]" id="kampanyalar" value="sCampaigns">
<label class="custom-control-label" for="kampanyalar">Kampanyalar</label>
</div>
</div>
belirli bir kısmını atayım buyrun.