v2.5.2
Giriş yap

PHP Paylaşım birden fazla kategori id olarak ekleme ve isim olarak çekme (ekrana yazdirma)

aykhan
942 defa görüntülendi

Merhaba arkadaşlar. bir sorunum var yine. Gta 5 modelleri yayınlayacağım, modelleri yüklüyorum HER MODELE birden fazla kategori ekliyorum. Dizi şeklinde kategori id sini gönderiyorum implode ile Modelin kategori sütununa (Model sql tablomun adi gta5, kategori tablomun adı gta5_kategoriya) gta5_kategorya tablosunda yer alan kategorinin idsini yazdırıyorum. insert ediyorum felan işde bildiğiniz gibi. Sorun şu ki, veri tabanina implode edib virgülle yazdırdığım birden fazla kategori id'sini sitede isim olarak yazdıramıyorum. Yani elimde kategori id var (birden fazla - mesala kategori 15,24,17 gibi) bunları kullanıp, o kategori idli kategorinin ismini ekrana yazdıramıyorum, sebep ise kategorilerin id olarak implode edilib virgülle birden fazla olması.
yardımcı ola bilecek arkadaşlar olursa sevinirim.
Son yazpdığım böyle olmuşdu son td den sonra hiç birşey gözükmedi


    <table class="table table-bordered table-striped mb-none" id="datatable-editable">
		<thead>
			<tr>
				<th>Şəkil</th>
				<th>Ad</th>
				<th>Endirmə sayı</th>
				<th>Kategoriya</th>
				<th>Statusu</th>
				<th>Paylaşım tarixi</th>
				<th>Əməliyyatlar</th>
			</tr>
		</thead>
		<tbody>
		  
		                      <!-- SORUN BURADA START -->
		    
		    
			<?php $bax=$db->prepare("SELECT * FROM gta5 order by id DESC");
			$bax->execute();
			while($gta5_yaz=$bax->fetch(PDO::FETCH_ASSOC)) { ?>
			<tr class="gradeC">
				<td><center><img width="100" src="../assets/img/gta5<?php echo $gta5_yaz['sekil'] ?>"></center></td>
				<td><?php echo $gta5_yaz['ad'] ?></td>
				<td><?php echo $gta5_yaz['endirme_sayi'] ?></td>
				<td><?php 

				$exkategoriya = explode(",", $gta5_yaz['kategoriya']);
				$g_k_bax=$db->prepare("SELECT * FROM gta5_kategoriya where id=:id");
				$g_k_bax->execute(['id' => $exkategoriya]);
				$g_k_yaz=$g_k_bax->fetch(PDO::FETCH_ASSOC);
				foreach ($g_k_yaz as $key) {echo $g_k_yaz['kategoriya_ad']."<br>";}
				?></td>
				
				
				                <!-- SORUN BURADA END-->

				<td>
                    <?php if ($gta5_yaz['active'] == 1): ?>	
                    	<center><span class="status_active">yayımlanır</span></center>
                    <?php endif ?>
                    <?php if ($gta5_yaz['active'] == 0): ?>
                    	<center><span class="status_deactive">yayımlanmır</span></center>
                    <?php endif ?>
                    				</td>
                    				<td><?php echo $gta5_yaz['tarix'] ?></td>
                    				<td class="actions">
                    <a href="gta5/gta5-up.php?id=<?php echo $gta5_yaz['id'] ?>" class="on-default edit-row"><i class="fas fa-edit"></i></a>
                    
                    <a href="gta5/gta5-img.php?id=<?php echo $gta5_yaz['id'] ?>" class="on-default edit-row"><i class="fa fa-image"></i></a>
                    
                    <a target="_blank" href="/gta5/<?= seo($gta5_yaz['url'])."/".($gta5_yaz['id']) ?>"><i class="fa fa-eye"></i></a>
                    
                    <?php if ($gta5_yaz['status'] == 1): ?>
                    <a href="../work.php?id=<?php echo $gta5_yaz['id'] ?>&model-yayimini=dayandir"><i onclick="stop()" class="fa fa-pause"></i></a>
                    
                    <?php endif ?>
                    
                    <?php if ($gta5_yaz['status'] == 0): ?>
                    
                    <a href="../work.php?id=<?php echo $gta5_yaz['id'] ?>&model-yayimini=baslat"><i class="fa fa-play"></i></a>
                    
                    <?php endif ?>
                    
                    <a href="../work.php?sil=gta5-model&model_sekili=<?php echo substr($gta5_yaz['sekil'], 1) ?>&id=<?php echo $gta5_yaz['id'] ?>" class="on-default remove-row"><i style="color: red;" class="fas fa-trash-alt"></i></a>
				</td>
			</tr>
		<?php } ?>
		</tbody>
	</table>

Cevap yaz
Cevaplar (1)
qplot
1143 gün önce

tablo 
kategori ve urun 
k_id, k_bas  ||  u_id, u_bas, u_kat
baz alıyorum

SELECT kategori.*, urun.*, GROUP_CONCAT(kategori.k_bas) as kategoriler FROM urun INNER JOIN kategori ON FIND_IN_SET ( kategori.k_id, urun.u_kat )


kategoriler degıskene dırek yaz while vs yapınca 

$row['kategoriler'];

https://youtu.be/MQoXH9yNUyo?list=PLFKBG5t4Ywm5rzCZyC6t8tp1VmhpezCSG