Rumah > php教程 > php手册 > 关于库存量 - adstat

关于库存量 - adstat

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-05-20 11:54:00
asal
1248 orang telah melayarinya
<span style="color: #008080;"> 1</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> goods_number()
</span><span style="color: #008080;"> 2</span> <span style="color: #000000;">    {
</span><span style="color: #008080;"> 3</span>         <span style="color: #008000;">//</span><span style="color: #008000;"> 接收商品ID</span>
<span style="color: #008080;"> 4</span>         <span style="color: #800080;">$id</span> = I('get.id'<span style="color: #000000;">);
</span><span style="color: #008080;"> 5</span>         <span style="color: #800080;">$gnModel</span> = D('goods_number'<span style="color: #000000;">);
</span><span style="color: #008080;"> 6</span>         
<span style="color: #008080;"> 7</span>         <span style="color: #008000;">//</span><span style="color: #008000;"> 处理表单</span>
<span style="color: #008080;"> 8</span>         <span style="color: #0000ff;">if</span><span style="color: #000000;">(IS_POST)
</span><span style="color: #008080;"> 9</span> <span style="color: #000000;">        {<br>         //var_dump($_POST)die;
</span><span style="color: #008080;">10</span>             <span style="color: #008000;">//</span><span style="color: #008000;"> 先删除原库存</span>
<span style="color: #008080;">11</span>             <span style="color: #800080;">$gnModel</span>->where(<span style="color: #0000ff;">array</span><span style="color: #000000;">(
</span><span style="color: #008080;">12</span>                 'goods_id' => <span style="color: #0000ff;">array</span>('eq', <span style="color: #800080;">$id</span>),
<span style="color: #008080;">13</span>             ))-><span style="color: #000000;">delete();
</span><span style="color: #008080;">14</span>             <span style="color: #008000;">//</span><span style="color: #008000;">var_dump($_POST);die;</span>
<span style="color: #008080;">15</span>             <span style="color: #800080;">$gaid</span> = I('post.goods_attr_id'<span style="color: #000000;">);
</span><span style="color: #008080;">16</span>             <span style="color: #800080;">$gn</span> = I('post.goods_number'<span style="color: #000000;">);
</span><span style="color: #008080;">17</span>             <span style="color: #008000;">//</span><span style="color: #008000;"> 先计算商品属性ID和库存量的比例</span>
<span style="color: #008080;">18</span>             <span style="color: #800080;">$gaidCount</span> = <span style="color: #008080;">count</span>(<span style="color: #800080;">$gaid</span><span style="color: #000000;">);
</span><span style="color: #008080;">19</span>             <span style="color: #800080;">$gnCount</span> = <span style="color: #008080;">count</span>(<span style="color: #800080;">$gn</span><span style="color: #000000;">);
</span><span style="color: #008080;">20</span>             <span style="color: #800080;">$rate</span> = <span style="color: #800080;">$gaidCount</span>/<span style="color: #800080;">$gnCount</span><span style="color: #000000;">;
</span><span style="color: #008080;">21</span>             <span style="color: #008000;">//</span><span style="color: #008000;"> 循环库存量</span>
<span style="color: #008080;">22</span>             <span style="color: #800080;">$_i</span> = 0;  <span style="color: #008000;">//</span><span style="color: #008000;"> 取第几个商品属性ID</span>
<span style="color: #008080;">23</span>             <span style="color: #0000ff;">foreach</span> (<span style="color: #800080;">$gn</span> <span style="color: #0000ff;">as</span> <span style="color: #800080;">$k</span> => <span style="color: #800080;">$v</span><span style="color: #000000;">)
</span><span style="color: #008080;">24</span> <span style="color: #000000;">            {
</span><span style="color: #008080;">25</span>                 <span style="color: #800080;">$_goodsAttrId</span> = <span style="color: #0000ff;">array</span>();  <span style="color: #008000;">//</span><span style="color: #008000;"> 把下面取出来的ID放这里
</span><span style="color: #008080;">26</span> <span style="color: #008000;">                // 后来从商品属性ID数组中取出 $rate 个,循环一次取一个</span>
<span style="color: #008080;">27</span>                 <span style="color: #0000ff;">for</span>(<span style="color: #800080;">$i</span>=0; <span style="color: #800080;">$i</span>$rate; <span style="color: #800080;">$i</span>++<span style="color: #000000;">)
</span><span style="color: #008080;">28</span> <span style="color: #000000;">                {
</span><span style="color: #008080;">29</span>                     <span style="color: #800080;">$_goodsAttrId</span>[] = <span style="color: #800080;">$gaid</span>[<span style="color: #800080;">$_i</span><span style="color: #000000;">];
</span><span style="color: #008080;">30</span>                     <span style="color: #800080;">$_i</span>++<span style="color: #000000;">;
</span><span style="color: #008080;">31</span> <span style="color: #000000;">                }
</span><span style="color: #008080;">32</span>                 <span style="color: #008000;">//</span><span style="color: #008000;"> 先升序排列</span>
<span style="color: #008080;">33</span>                 <span style="color: #008080;">sort</span>(<span style="color: #800080;">$_goodsAttrId</span>, SORT_NUMERIC);  <span style="color: #008000;">//</span><span style="color: #008000;"> 以数字的形式排序
</span><span style="color: #008080;">34</span> <span style="color: #008000;">                // 把取出来的商品属性ID转化成字符串</span>
<span style="color: #008080;">35</span>                 <span style="color: #800080;">$_goodsAttrId</span> = (<span style="color: #0000ff;">string</span>)<span style="color: #008080;">implode</span>(',', <span style="color: #800080;">$_goodsAttrId</span><span style="color: #000000;">);
</span><span style="color: #008080;">36</span>                 <span style="color: #800080;">$gnModel</span>->add(<span style="color: #0000ff;">array</span><span style="color: #000000;">(
</span><span style="color: #008080;">37</span>                     'goods_id' => <span style="color: #800080;">$id</span>,
<span style="color: #008080;">38</span>                     'goods_attr_id' => <span style="color: #800080;">$_goodsAttrId</span>,
<span style="color: #008080;">39</span>                     'goods_number' => <span style="color: #800080;">$v</span>,
<span style="color: #008080;">40</span> <span style="color: #000000;">                ));
</span><span style="color: #008080;">41</span> <span style="color: #000000;">            }
</span><span style="color: #008080;">42</span>             <span style="color: #800080;">$this</span>->success('设置成功!', U('goods_number?id='.I('get.id'<span style="color: #000000;">)));
</span><span style="color: #008080;">43</span>             <span style="color: #0000ff;">exit</span><span style="color: #000000;">;
</span><span style="color: #008080;">44</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">45</span>         
<span style="color: #008080;">46</span>         <span style="color: #008000;">//</span><span style="color: #008000;"> 根据商品ID取出这件商品所有可选属性的值</span>
<span style="color: #008080;">47</span>         <span style="color: #800080;">$gaModel</span> = D('goods_attr'<span style="color: #000000;">);
</span><span style="color: #008080;">48</span>         <span style="color: #800080;">$gaData</span> = <span style="color: #800080;">$gaModel</span>->alias('a'<span style="color: #000000;">)
</span><span style="color: #008080;">49</span>         ->field('a.*,b.attr_name'<span style="color: #000000;">)
</span><span style="color: #008080;">50</span>         -><span style="color: #008080;">join</span>('LEFT JOIN __ATTRIBUTE__ b ON a.attr_id=b.id'<span style="color: #000000;">)
</span><span style="color: #008080;">51</span>         ->where(<span style="color: #0000ff;">array</span><span style="color: #000000;">(
</span><span style="color: #008080;">52</span>             'a.goods_id' => <span style="color: #0000ff;">array</span>('eq', <span style="color: #800080;">$id</span>),
<span style="color: #008080;">53</span>             'b.attr_type' => <span style="color: #0000ff;">array</span>('eq', '可选'),
<span style="color: #008080;">54</span>         ))-><span style="color: #000000;">select();
</span><span style="color: #008080;">55</span>         <span style="color: #008000;">//</span><span style="color: #008000;"> 处理这个二维数组:转化成三维:把属性相同的放到一起</span>
<span style="color: #008080;">56</span>         <span style="color: #800080;">$_gaData</span> = <span style="color: #0000ff;">array</span><span style="color: #000000;">();
</span><span style="color: #008080;">57</span>         <span style="color: #0000ff;">foreach</span> (<span style="color: #800080;">$gaData</span> <span style="color: #0000ff;">as</span> <span style="color: #800080;">$k</span> => <span style="color: #800080;">$v</span><span style="color: #000000;">)
</span><span style="color: #008080;">58</span> <span style="color: #000000;">        {
</span><span style="color: #008080;">59</span>             <span style="color: #800080;">$_gaData</span>[<span style="color: #800080;">$v</span>['attr_name']][] = <span style="color: #800080;">$v</span><span style="color: #000000;">;
</span><span style="color: #008080;">60</span> <span style="color: #000000;">        }
</span><span style="color: #008080;">61</span>         
<span style="color: #008080;">62</span>         <span style="color: #008000;">//</span><span style="color: #008000;"> 先取出这件商品已经设置过的库存量</span>
<span style="color: #008080;">63</span>         <span style="color: #800080;">$gnData</span> = <span style="color: #800080;">$gnModel</span>->where(<span style="color: #0000ff;">array</span><span style="color: #000000;">(
</span><span style="color: #008080;">64</span>             'goods_id' => <span style="color: #800080;">$id</span>,
<span style="color: #008080;">65</span>         ))-><span style="color: #000000;">select();
</span><span style="color: #008080;">66</span>         <span style="color: #008000;">//</span><span style="color: #008000;">var_dump($gnData);</span>
<span style="color: #008080;">67</span>         
<span style="color: #008080;">68</span>         <span style="color: #800080;">$this</span>->assign(<span style="color: #0000ff;">array</span><span style="color: #000000;">(
</span><span style="color: #008080;">69</span>             'gaData' => <span style="color: #800080;">$_gaData</span>,
<span style="color: #008080;">70</span>             'gnData' => <span style="color: #800080;">$gnData</span>,
<span style="color: #008080;">71</span> <span style="color: #000000;">        ));
</span><span style="color: #008080;">72</span>         
<span style="color: #008080;">73</span>         <span style="color: #008000;">//</span><span style="color: #008000;"> 设置页面信息</span>
<span style="color: #008080;">74</span>         <span style="color: #800080;">$this</span>->assign(<span style="color: #0000ff;">array</span><span style="color: #000000;">(
</span><span style="color: #008080;">75</span>             '_page_title' => '库存量',
<span style="color: #008080;">76</span>             '_page_btn_name' => '返回列表',
<span style="color: #008080;">77</span>             '_page_btn_link' => U('lst'),
<span style="color: #008080;">78</span> <span style="color: #000000;">        ));
</span><span style="color: #008080;">79</span>            <span style="color: #008000;">//</span><span style="color: #008000;"> 1.显示表单</span>
<span style="color: #008080;">80</span>            <span style="color: #800080;">$this</span>-><span style="color: #000000;">display();
</span><span style="color: #008080;">81</span>     }
Salin selepas log masuk

 

Label berkaitan:
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan