v2.5.2
Giriş yap

Çoklu kategori nasıl insert edilir?

rephp7
746 defa görüntülendi

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.

Cevap yaz
Cevaplar (16)
rephp7
1250 gün önce

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

rephp7
1249 gün önce

halloldu çok sağolun.

makifgokce
1249 gün önce
$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ş :)

qplot
1249 gün önce

tam dedım kodu yazayım derken çözmüssün :)

rephp7
1250 gün önce

Düzeltme : doğru çalışmıyormuş
kategori adları geldi ama halen id değerleri yok, Array to string conversation .... diyor.

rephp7
1250 gün önce

@qplot düzeltmeyi yaptım çalıştı ama yapın komple hatalı dedin ya aklım karıştı,
hazırlayacağın örneği bekleyeceğim, doğru bir yapı kurmak isterim
Bekliyorum örneğini, sağol.

qplot
1250 gün önce

tamm doğru tespit.

sen oraya nereden veri cekıyorsan yanlıs cekıyorsun aslında yapın komple hatalı aksam bır tane ornek kod yazıp verıcem sql ıle ona bakarak duzenlersın

rephp7
1250 gün önce

notice: array to string conversation in online 157 diyor.
<option value="<?=$kat;?>"<?php echo in_array($veri[0][kateg_id], $kat) ? 'selected' : '' ?>
bu satırda sorun
kategori adları geliyor ama id değerleri kaynak kodunda görünmüyor

qplot
1250 gün önce

$veri[0][kateg_id]

bu kod nereden gelıyor kaynak koduna bakınca bak bakalım burada degerler varmı

rephp7
1250 gün önce

explode kodum sanırım çalışmıyor.
hücrede 2 yazınca hemen kategori adı "k_adi" geliyor.
fakat 2,1 yazınca boş geliyor kategori adı seçili getirmiyor.

rephp7
1250 gün önce
<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

qplot
1250 gün önce

sen şuraya sql kodlarını ve guncelleme sayfanın kodlarını yaz halledelım

rephp7
1250 gün önce

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.

rephp7
1251 gün önce

güncelleme sayfasında çoklu olarak kategori adlarını seçili getirtemedim.
yardımcı olabilecek var mı?

qplot
1251 gün önce

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ı

kargasa1982
1251 gün önce

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.