🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
  购物车页,也是此程序最量要的页,涉及修改商品数量、清空购物车、删除某一商品等功能,由于代码多,所以分开多页来学习。   在cart根目录里建立shopping_car.php页。   测试页代码: ~~~ <?php echo 'Hello shopping_car.php'; ?> ~~~   然后,点首页的"购买"按钮,网页迅速跳转到shopping_car.php,显示内容: ”Hello shopping_car.php“,测试成功。   看似跳转一页很简单,其实后边还执行过了buy.php页的代码,也说明buy.php代码没问题。其实,笔者在写buy.php页时,也反复用了var_dump()进行了测试,只不过正式用时,将测试代码去掉了,以免多余代码影响学习。   下面开始写正式代码: ~~~ <?php //启动session功能. session_start(); //设置网页字符集. header("Content-type:text/html;charset=utf8"); //导入smarty配置文件. require('config.php'); //导入数据连接文件. require('conn.php'); //判断goodsid的session变量是否设置. if(isset($_SESSION['goodsid']) && isset($_SESSION['goodsnum'])){ //如果已设置,则分解成数组. $array=explode('@',$_SESSION['goodsid']); //goodsnum的session数组必须同时分解. $arraynum=explode('@',$_SESSION['goodsnum']); }else{ $array=array(); }//if end. //定义价格变量 $totalprice=0; //创建准备存储记录的数组. $arrayinfo=array(); //根据$array中的元素,从表中读取相关记录. for($i=0;$i<count($array);$i++){ if($array[$i]!=''){ //设置sql语句. $sql='select * from goods where id='.$array[$i]; //执行查询. $query=mysqli_query($link,$sql); //读取数据. $info=mysqli_fetch_array($query); //将arraynum[]数组相对应的值也存入arrayinfo. array_push($info,$arraynum[$i]); //将整理好的$info数组给总数组. array_push($arrayinfo,$info); //统计商品价格. $totalprice+=$info['price']*$arraynum[$i]; }//if end. }//for end. var_dump($arrayinfo); ?> ~~~   主要代码解析:   session_start()、require()、explode()、mydqli_query()等函数解释参考前面章节。 array_push(数组,新元素),此函数向第一个参数的数组尾部添加一个或多个元素(入栈) * * * * *   测试运行,结果如下: ~~~ array (size=1) 0 => array (size=11) 0 => string '3' (length=1) 'id' => string '3' (length=1) 1 => string '笔记本TN001' (length=14) 'name' => string '笔记本TN001' (length=14) 2 => string '戴尔' (length=6) 'brand' => string '戴尔' (length=6) 3 => string '7788.50' (length=7) 'price' => string '7788.50' (length=7) 4 => string '100' (length=3) 'count' => string '100' (length=3) 5 => string '1' (length=1) ~~~   测试成功。 下一节,讲购物车模板。