You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

项目技术求助:将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 06:50:27