PHP学习心得


批量添加商品

<ul> <li>商家批量添加商品功能,或者批量导入商品,通过数组来进行模拟。</li> <li>要求前端提交数据,不在数据库内进行添加,已经在数据库内进行修改。数据库内已经有的数据,并且不是前端提交的数据,这些数据进行删除。</li> </ul> <h2>实现</h2> <pre><code class="language-php">function getData(array $db, array $data) { // 处理后的数据格式。目的:尽量减少对数据库操作。通常是先把数据库中已有数据都删除掉,再把数据进行添加操作。 $list = [ 'Add' =&gt; [], // 需要添加的数据 'Update' =&gt; [], // 需要修改的数据 'Delete' =&gt; [], // 需要删除的数据 ]; foreach ($data as $item) { $GoodsID = $item['GoodsID']; if (empty($db[$GoodsID])) { $list['Add'][] = $item; } else { $list['Update'][] = $item; unset($db[$GoodsID]); } } $list['Delete'] = $db; return $list; }</code></pre> <h2>测试</h2> <pre><code class="language-php">// 数据库查询数据,条件为商家ID(StoreID = 10)。此数据为商家所属商品,商品名称唯一,已经处理后的数据格式,索引为商品ID(GoodsID) $db = [ 1 =&gt; ['GoodsID' =&gt; 1, 'GoodsName' =&gt; '苹果手机', 'StoreID' =&gt; 10], 3 =&gt; ['GoodsID' =&gt; 3, 'GoodsName' =&gt; '小米手机', 'StoreID' =&gt; 10] ]; // 前端提交数据,已经处理后的数据格式,商品ID不存在为0 $data = [ ['GoodsID' =&gt; 1, 'GoodsName' =&gt; '苹果手机 12 pro max', 'StoreID' =&gt; 10], ['GoodsID' =&gt; 0, 'GoodsName' =&gt; '华为手机', 'StoreID' =&gt; 10], ]; $getData = getData($db, $data); var_export($getData);</code></pre> <h2>结果</h2> <pre><code class="language-php">array ( 'Add' =&gt; array ( 0 =&gt; array ( 'GoodsID' =&gt; 0, 'GoodsName' =&gt; '华为手机', 'StoreID' =&gt; 10, ), ), 'Update' =&gt; array ( 0 =&gt; array ( 'GoodsID' =&gt; 1, 'GoodsName' =&gt; '苹果手机 12 pro max', 'StoreID' =&gt; 10, ), ), 'Delete' =&gt; array ( 3 =&gt; array ( 'GoodsID' =&gt; 3, 'GoodsName' =&gt; '小米手机', 'StoreID' =&gt; 10, ), ), )</code></pre>

页面列表

ITEM_HTML