全国の事業用住宅在庫在庫ランキングについて
<span> 1</span> <span>public</span> <span>function</span><span> goods_number()
</span><span> 2</span> <span> {
</span><span> 3</span> <span>//</span><span> 接收商品ID</span>
<span> 4</span> <span>$id</span> = I('get.id'<span>);
</span><span> 5</span> <span>$gnModel</span> = D('goods_number'<span>);
</span><span> 6</span>
<span> 7</span> <span>//</span><span> 处理表单</span>
<span> 8</span> <span>if</span><span>(IS_POST)
</span><span> 9</span> <span> {<br /> //var_dump($_POST)die;
</span><span>10</span> <span>//</span><span> 先删除原库存</span>
<span>11</span> <span>$gnModel</span>->where(<span>array</span><span>(
</span><span>12</span> 'goods_id' => <span>array</span>('eq', <span>$id</span>),
<span>13</span> ))-><span>delete();
</span><span>14</span> <span>//</span><span>var_dump($_POST);die;</span>
<span>15</span> <span>$gaid</span> = I('post.goods_attr_id'<span>);
</span><span>16</span> <span>$gn</span> = I('post.goods_number'<span>);
</span><span>17</span> <span>//</span><span> 先计算商品属性ID和库存量的比例</span>
<span>18</span> <span>$gaidCount</span> = <span>count</span>(<span>$gaid</span><span>);
</span><span>19</span> <span>$gnCount</span> = <span>count</span>(<span>$gn</span><span>);
</span><span>20</span> <span>$rate</span> = <span>$gaidCount</span>/<span>$gnCount</span><span>;
</span><span>21</span> <span>//</span><span> 循环库存量</span>
<span>22</span> <span>$_i</span> = 0; <span>//</span><span> 取第几个商品属性ID</span>
<span>23</span> <span>foreach</span> (<span>$gn</span> <span>as</span> <span>$k</span> => <span>$v</span><span>)
</span><span>24</span> <span> {
</span><span>25</span> <span>$_goodsAttrId</span> = <span>array</span>(); <span>//</span><span> 把下面取出来的ID放这里
</span><span>26</span> <span> // 后来从商品属性ID数组中取出 $rate 个,循环一次取一个</span>
<span>27</span> <span>for</span>(<span>$i</span>=0; <span>$i</span><<span>$rate</span>; <span>$i</span>++<span>)
</span><span>28</span> <span> {
</span><span>29</span> <span>$_goodsAttrId</span>[] = <span>$gaid</span>[<span>$_i</span><span>];
</span><span>30</span> <span>$_i</span>++<span>;
</span><span>31</span> <span> }
</span><span>32</span> <span>//</span><span> 先升序排列</span>
<span>33</span> <span>sort</span>(<span>$_goodsAttrId</span>, SORT_NUMERIC); <span>//</span><span> 以数字的形式排序
</span><span>34</span> <span> // 把取出来的商品属性ID转化成字符串</span>
<span>35</span> <span>$_goodsAttrId</span> = (<span>string</span>)<span>implode</span>(',', <span>$_goodsAttrId</span><span>);
</span><span>36</span> <span>$gnModel</span>->add(<span>array</span><span>(
</span><span>37</span> 'goods_id' => <span>$id</span>,
<span>38</span> 'goods_attr_id' => <span>$_goodsAttrId</span>,
<span>39</span> 'goods_number' => <span>$v</span>,
<span>40</span> <span> ));
</span><span>41</span> <span> }
</span><span>42</span> <span>$this</span>->success('设置成功!', U('goods_number?id='.I('get.id'<span>)));
</span><span>43</span> <span>exit</span><span>;
</span><span>44</span> <span> }
</span><span>45</span>
<span>46</span> <span>//</span><span> 根据商品ID取出这件商品所有可选属性的值</span>
<span>47</span> <span>$gaModel</span> = D('goods_attr'<span>);
</span><span>48</span> <span>$gaData</span> = <span>$gaModel</span>->alias('a'<span>)
</span><span>49</span> ->field('a.*,b.attr_name'<span>)
</span><span>50</span> -><span>join</span>('LEFT JOIN __ATTRIBUTE__ b ON a.attr_id=b.id'<span>)
</span><span>51</span> ->where(<span>array</span><span>(
</span><span>52</span> 'a.goods_id' => <span>array</span>('eq', <span>$id</span>),
<span>53</span> 'b.attr_type' => <span>array</span>('eq', '可选'),
<span>54</span> ))-><span>select();
</span><span>55</span> <span>//</span><span> 处理这个二维数组:转化成三维:把属性相同的放到一起</span>
<span>56</span> <span>$_gaData</span> = <span>array</span><span>();
</span><span>57</span> <span>foreach</span> (<span>$gaData</span> <span>as</span> <span>$k</span> => <span>$v</span><span>)
</span><span>58</span> <span> {
</span><span>59</span> <span>$_gaData</span>[<span>$v</span>['attr_name']][] = <span>$v</span><span>;
</span><span>60</span> <span> }
</span><span>61</span>
<span>62</span> <span>//</span><span> 先取出这件商品已经设置过的库存量</span>
<span>63</span> <span>$gnData</span> = <span>$gnModel</span>->where(<span>array</span><span>(
</span><span>64</span> 'goods_id' => <span>$id</span>,
<span>65</span> ))-><span>select();
</span><span>66</span> <span>//</span><span>var_dump($gnData);</span>
<span>67</span>
<span>68</span> <span>$this</span>->assign(<span>array</span><span>(
</span><span>69</span> 'gaData' => <span>$_gaData</span>,
<span>70</span> 'gnData' => <span>$gnData</span>,
<span>71</span> <span> ));
</span><span>72</span>
<span>73</span> <span>//</span><span> 设置页面信息</span>
<span>74</span> <span>$this</span>->assign(<span>array</span><span>(
</span><span>75</span> '_page_title' => '库存量',
<span>76</span> '_page_btn_name' => '返回列表',
<span>77</span> '_page_btn_link' => U('lst'),
<span>78</span> <span> ));
</span><span>79</span> <span>//</span><span> 1.显示表单</span>
<span>80</span> <span>$this</span>-><span>display();
</span><span>81</span> }
ログイン後にコピー
http://www.bkjia.com/PHPjc/1118331.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/1118331.html技術記事在庫に関しては、全国の商業住宅在庫ランキング 1 public function Goods_number() 2 { 3 // 製品 ID を取得 4 $id = I('get.id' ) 5 $gnModel = D('goods_number' ); / フォームを処理します...