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

关于库存量 - adstat

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-05-20 11:54:001253Durchsuche
<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>     }

 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn