项目技术求助:将urun_galeri数据源替换为urun_resim表数据
问题:替换商品图库数据源为urun_resim表
我正在完成学校项目,现有代码可从products表拉取数据至页面,但在urun_galeri模块遇到问题。我希望将此处的数据源改为urun_resim表,却不知如何修改现有代码实现数据拉取,恳请协助。
数据库结构说明
urun_resim表用于存储商品图片,包含与products表关联的urun_id字段,以及存储图片文件名的resim字段。
现有业务逻辑代码
if ($where->urun_kategori != '[]') { $urun_kategori = kategori_row(json_decode($where->urun_kategori)[0]); } if ($where->urun_galeri != '[]') { $urun_galeri = json_decode($where->urun_galeri); } if ($where->urun_varyant != '[]') { $stok = 0; } else { $stok = $where->urun_stok; } if ($where->urun_varyant != '[]') { $urun_varyantlar = json_decode($where->urun_varyant); $stok_say = []; foreach ($urun_varyantlar as $vyant_id => $vyan_arrays) { foreach ($vyan_arrays as $vyant_ozellik_id => $vyan_ozellik_arrays) { if ($vyan_ozellik_arrays->vozellik_stok == "") { $stok_say[] = 999; } else { $stok_say[] = $vyan_ozellik_arrays->vozellik_stok; } } } $varyant_stok = array_sum($stok_say); } else { $varyant_stok = 0; } if ($varyant_stok == 0) { $urun_stok = $stok; } else { $urun_stok = $varyant_stok; } $benzer_urunler = urun_yeni($urun_kategori->kategori_id, 6); $urun_bno = urun_bno($where->urun_bno);
现有图片渲染代码
<?php if ($where->urun_galeri) { ?> <?php if ($where->urun_galeri != '[]') { ?> <div class="cz-product-gallery"> <div class="cz-preview order-sm-2"> <?php $i = 0; foreach ($urun_galeri as $galeri) { $i++; ?> <div class="cz-preview-item <?php if ($i == 1) { echo 'active'; } ?>" id="galeri_<?= $i ?>"> <img class="cz-image-zoom" src="<?= base_url('uploads/urunler/' . $galeri) ?>" data-zoom="<?= base_url('uploads/urunler/' . $galeri) ?>" alt="<?php echo $where->urun_ad; ?>"> <div class="cz-image-zoom-pane"></div> </div> <?php } ?> </div> <div class="cz-thumblist order-sm-1"> </div> </div> <?php } ?> <?php } ?>
修改方案
1. 替换业务逻辑中的数据源拉取
删除原有的JSON解析代码,改为从urun_resim表查询当前商品的图片数据:
if ($where->urun_kategori != '[]') { $urun_kategori = kategori_row(json_decode($where->urun_kategori)[0]); } // 替换原urun_galeri解析逻辑,改为查询数据库 $urun_galeri = []; // 假设当前商品ID为$where->urun_id,根据实际字段调整 $query = $this->db->where('urun_id', $where->urun_id)->get('urun_resim'); if ($query->num_rows() > 0) { foreach ($query->result() as $row) { $urun_galeri[] = $row->resim; // 对应数据库中存储图片文件名的字段 } } // 剩余业务逻辑保持不变 if ($where->urun_varyant != '[]') { $stok = 0; } else { $stok = $where->urun_stok; } if ($where->urun_varyant != '[]') { $urun_varyantlar = json_decode($where->urun_varyant); $stok_say = []; foreach ($urun_varyantlar as $vyant_id => $vyan_arrays) { foreach ($vyan_arrays as $vyant_ozellik_id => $vyan_ozellik_arrays) { if ($vyan_ozellik_arrays->vozellik_stok == "") { $stok_say[] = 999; } else { $stok_say[] = $vyan_ozellik_arrays->vozellik_stok; } } } $varyant_stok = array_sum($stok_say); } else { $varyant_stok = 0; } if ($varyant_stok == 0) { $urun_stok = $stok; } else { $urun_stok = $varyant_stok; } $benzer_urunler = urun_yeni($urun_kategori->kategori_id, 6); $urun_bno = urun_bno($where->urun_bno);
2. 调整图片渲染代码的判断逻辑
原来的判断依赖$where->urun_galeri的JSON值,现在改为判断$urun_galeri数组是否为空:
<?php if (!empty($urun_galeri)) { ?> <div class="cz-product-gallery"> <div class="cz-preview order-sm-2"> <?php $i = 0; foreach ($urun_galeri as $galeri) { $i++; ?> <div class="cz-preview-item <?php if ($i == 1) { echo 'active'; } ?>" id="galeri_<?= $i ?>"> <img class="cz-image-zoom" src="<?= base_url('uploads/urunler/' . $galeri) ?>" data-zoom="<?= base_url('uploads/urunler/' . $galeri) ?>" alt="<?php echo $where->urun_ad; ?>"> <div class="cz-image-zoom-pane"></div> </div> <?php } ?> </div> <div class="cz-thumblist order-sm-1"> </div> </div> <?php } ?>
注意事项
- 确认
urun_resim表的关联字段(如urun_id)和图片字段(如resim)名称,需与你的实际数据库结构匹配。 - 若未使用CodeIgniter框架,需将数据库查询代码替换为对应框架或原生PHP的查询方式(如
mysqli_query)。
内容的提问来源于stack exchange,提问作者Avza Melek
相关产品推荐
相关产品推荐

