Çoklu kategori nasıl insert edilir?
kategorilerimi kategori tablosundan çağırıp çoklu olarak seçebiliyorum fakat nasıl bu seçimi nasıl yazılar tablosunda kat_id sütununa çoklu olarak yazdırabilirim?
ikinci olarak, insert ettiğim bu kategorileri yazıları düzenleme formunda bu kategorileri nasıl seçili olarak getirebilirim?
pdo ile bir örnek yazarsanız memnun olurum.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (16)
tamam hallettim, explode içine yanlış değeri parçalatmışım, in_array deki değerle yer değiştirdim.
<?php foreach ($kveriler as item){
$kat= explode(',',$veri[0][kateg_id]); ?>
<option value="<?=$kat;?>"<?php echo in_array($item["k_id"], $kat) ? 'selected' : '' ?> >
<?=$item["k_adi"];?>
</option>
<?php }
?>
</select>
şimdi çalışıyor. Sağolun.
Düzeltme : çalışmıyor kategori adları geldi ama halen id değerleri yok, Array to string conversation .... diyor,
bu yorumu çözüm olmaktan çıkartır mısınız @tayfunerbilen
$kat= explode(',',$veri[0][kateg_id]); ?> // buradaki `kateg_id` bir değişkenmi yoksa array'e ait bir key mi?
$kat= explode(',',$veri[0]['kateg_id']); ?>
kateg_id
kısmını düzeltirsen olur bu iş :)
<select class="select2bs4" multiple="multiple" name="kategori" >
<?php
foreach ($kveriler as item){
$kat= explode(',',$item["k_id"]);
?>
<option value="<?=$kat;?>"<?php echo in_array($veri[0][kateg_id], $kat) ? 'selected' : '' ?>
> <?=$item["k_adi"];?>
</option>
<?php }
?>
</select>
tek kategorisi olanlar geliyor. Virgül ile ayrılmış çoklu kategorileri görmüyor
kat_id leri 1,2,3 şeklinde virgül ile yolladım ama
seçili olarak çoklu şekilde kat_adlari ni getirtemiyorum.
iyice kafam karıştı.
düzenleme sayfamda eğer yazının;
tek kategori id si varsa adını seçili getiriyor ama bir den fazla kategori id si varsa hiç bir şey seçili gelmiyor.
GÜNCELLEMEDE
in_array kullanacaksın
onuda sayfa duzenlemede once virgulle ayrılmıs kategorılerı
$kat=explode(',', $row_gunc['sayfa_kat']); ile parçalayacaksın
sonra checkbox lara bu kodu yazacaksın
<?php echo in_array($row_kat['kat_id'], $kat) ? 'checked' : '' ?>
YENİ KAYITTADA
$kat=implode(",",$_POST['kategori']);
birleştirip virgullu sekılde kayıt yapacaksın
yorgunum ancak bu kadar :) tayfunun vıdesu vardı sanırım bunla alakalı
kategorileri tek bir sütun içinde tutman gerekiyorsa, tüm kategori değerlerini virgül(,) ile birleştirip tek bir string ifade şeklinde DB ye kaydet. Okurkende explode ile bunları dizi haline getirip tekrar kullanırsın.
kayıtlı verin : kategori 1,kategori 2,kategori 3,kategori 4 şeklinde olur.