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

关于库存量 - adstat

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-05-20 11:54:00
Original
1250 people have browsed it
<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>     }
Copy after login

 

Related labels:
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template