【京东账户】——Mysql/PHP/Ajax爬坑之产品列表显示

一、引言

实现京东的账户项目,功能模块之一,产品列表显示。要用到的是Apach环境,Mysql、PHP以及Ajax。

二、依据功能创建库、表、记录

  • 创建库:jd
  • 创建表:产品表

  • 添加多条记录

    /**产品信息表**/
    CREATE TABLE jd_product(
      pid INT PRIMARY KEY AUTO_INCREMENT,
      pname VARCHAR(64),
      price FLOAT(8,2),
      pic VARCHAR(32)
    );
    INSERT INTO jd_product VALUES
    (1,‘小米 Note 全网通 白色 移动联通电信4G手机 双卡双待‘,1199.00,‘images/phone/phone_01.jpg‘),
    (2,‘Apple iPhone 6s (A1700) 16G 玫瑰金色 移动联通电信4G手机‘,3999.00,‘images/phone/phone_02.jpg‘),
    (3,‘PPO R9 4GB+64GB内存版 玫瑰金 全网通4G手机 双卡‘,2499.00,‘images/phone/phone_03.jpg‘),
    (4,‘小米 红米 3S 高配全网通 3GB内存 32GB ROM 经典金色‘,899.00,‘images/phone/phone_04.jpg‘),
    (5,‘金立M6 Plus 香槟金 4GB+64GB版 移动联通电信4G手机 双卡双待‘,2999.00,‘images/phone/phone_05.jpg‘),
    (6,‘Apple iPhone 6s Plus (A1699) 64G 玫瑰金色 移动联通电信4G手机‘,5799.00,‘images/phone/phone_06.jpg‘),
    (7,‘vivo X7 全网通 4GB+64GB 移动联通电信4G手机 双卡双待‘,2499.00,‘images/phone/phone_07.png‘),
    (8,‘小米 红米Note3 高配全网通版 3GB+32GB 金色 移动联通电信4G手机‘,1099.00,‘images/phone/phone_08.jpg‘),
    (9,‘【六个月碎屏换新】荣耀8 4GB+32GB 全网通版 魅海蓝 双镜头,双2.5D玻璃‘,2499.00,‘images/phone/phone_09.jpg‘),
    (10,‘荣耀7 (PLK-AL10) 3GB+64GB内存版 荣耀金 移动联通电信4G手机‘,1799.00,‘images/phone/phone_10.jpg‘),
    (11,‘荣耀 V8 全网通 高配版 4GB+64GB 香槟金 移动联通电信4G手机 双卡双待双通‘,2799.00,‘images/phone/phone_11.jpg‘),
    (12,‘荣耀 畅玩5X 3GB内存版 落日金 移动联通电信4G手机 双卡双待 炫酷指纹‘,1099.00,‘images/phone/phone_12.jpg‘),
    (13,‘Apple iPhone 6 (A1586) 64GB 金色 移动联通电信4G手机‘,4199.00,‘images/phone/phone_13.jpg‘),
    (14,‘TCL 初现 750 雅金 移动联通电信4G手机 双卡双待 后置1600万摄像,美姿拍照!‘,4199.00,‘images/phone/phone_14.jpg‘),
    (15,‘华为 P9 plus 64GB 琥珀灰 移动联通电信4G手机 双卡双待‘,3988.00,‘images/phone/phone_15.jpg‘),
    (16,‘Apple iPhone 5s (A1530) 16GB 金色 移动联通4G手机‘,2198.00,‘images/phone/phone_16.jpg‘),
    (17,‘vivo X7Plus 全网通 4GB+64GB 移动联通电信4G手机 双卡双待 金色‘,2798.00,‘images/phone/phone_17.jpg‘),
    (18,‘华为 畅享5S 金色 移动联通电信4G手机 双卡双待 10万好评手机!‘,1099.00,‘images/phone/phone_18.jpg‘),
    (19,‘Apple iPhone 6 Plus (A1524) 16GB 银色 移动联通电信4G手机‘,3899.00,‘images/phone/phone_19.jpg‘),
    (20,‘华为 麦芒5 全网通 4GB+64GB版 香槟金 移动联通电信4G手机 双卡双待‘,2599.00,‘images/phone/phone_20.jpg‘),
    (21,‘小米5 全网通 标准版 3GB内存 32GB ROM 白色 移动联通电信4G手机‘,1799.00,‘images/phone/phone_21.jpg‘),
    (22,‘华为 P9 全网通 3GB+32GB版 流光金 移动联通电信4G手机 双卡双待 麒麟955‘,3188.00,‘images/phone/phone_22.jpg‘),
    (23,‘金立 金钢 标准版 爵士金 移动联通电信4G手机 双卡双待 4G全网通‘,999.00,‘images/phone/phone_23.jpg‘),
    (24,‘360手机 N4 全网通 4GB+32GB 阳光白 移动联通电信4G手机 双卡双待‘,999.00,‘images/phone/phone_24.jpg‘),
    (25,‘小米 Max 全网通 标准版 3GB内存 32GB ROM 金色 移动联通电信4G手机‘,1299.00, ‘images/phone/phone_25.jpg‘),
    (26,‘华为 P9 全网通 4GB+64GB版 金色 移动联通电信4G手机 双卡双待 后置1200万‘,3688.00, ‘images/phone/phone_26.jpg‘),
    (27,‘乐视(Le)乐2(X620)32GB 原力金 移动联通电信4G手机 双卡双待 5.5英寸‘,988.00,‘images/phone/phone_27.jpg‘),
    (28,‘努比亚(nubia)【3+64GB】小牛5 Z11mini 黑色 移动联通电信4G手机‘,1299.00, ‘images/phone/phone_28.jpg‘),
    (29,‘乐视(Le)乐2Pro 32GB 金色 移动联通电信4G手机 双卡双待 5.5英寸In-Cell屏‘,1399.00,‘images/phone/phone_29.jpg‘),
    (30,‘华为 Mate 8 3GB+32GB版 玫瑰金 移动联通电信4G手机 双卡双待 麒麟950芯片‘,2799.00, ‘images/phone/phone_30.jpg‘),
    (31,‘小米 4c 标准版 全网通 白色 移动联通电信4G手机 双卡双待 高通骁龙808畅销机‘,799.00,‘images/phone/phone_31.jpg‘),
    (32,‘vivo X7 全网通 4GB+64GB 移动联通电信4G手机 双卡双待 星空灰 vivox7‘,2498.00, ‘images/phone/phone_32.jpg‘),
    (33,‘联想 乐檬3 (K32C36)16GB 金色 移动4G手机 双卡双待 刀锋致敬经典‘,599.00,‘images/phone/phone_33.jpg‘),
    (34,‘华为 荣耀 畅玩4X 晨曦金 移动联通电信4G手机 双卡双待 5.5英寸大屏看片利器‘,749.00,‘images/phone/phone_34.jpg‘),
    (35,‘三星 Galaxy On5(G5500)金色 移动联通4G手机 真皮质感后盖,2600毫安大容量‘,699.00,‘images/phone/phone_35.jpg‘),
    (36,‘OPPO A37 2GB+16GB内存版 玫瑰金 全网通4G手机 双卡双待 【赠品任你选】‘,1299.00,‘images/phone/phone_36.jpg‘);

三、创建php

      ①jd.sql   ②init.php  ③product_list.php

  • 查询数据库

  • 返回格式字符串Json
//product_list.php
<?php
  header("Content-Type:application/json;charset=utf-8");
  require(‘init.php‘);
  $sql = "SELECT * FROM jd_product";
  $result = mysqli_query($conn,$sql);
  $row = mysqli_fetch_all($result,MYSQLI_ASSOC);
  $str = json_encode($row);
  echo $str;
?>
//init.php
<?php
  $conn = mysqli_connect("127.0.0.1","root","","jd",3306);
  mysqli_query($conn,"SET NAMES UTF8");
?>

测试:地址栏输入    http://127.0.0.1/jd_store/data/product_list.php        输出所有数据

三、创建js{分析html/css}

      ①productlist.html

②js/productlist.js

③js

  • 页面加载成功显示产品列表

循环添加

/***产品列表显示***/
     $.ajax({
        url:‘data/product_list.php‘,
         success:function(data){
             var html = "";
             for(var i=0;i<data.length;i++){
                 var obj = data[i];
                 html += `
                   <li>
                        <a href=""><img src="${obj.pic}" /></a>
                        <p>${obj.price}</p>
                        <h1><a href="">${obj.pname}</a></h1>
                        <div>
                        <a href="#" class="contrast"><i></i>对比</a>
                        <a href="#" class="p-operate"><i></i>关注</a>
                        <a href="${obj.pid}" class="addcart"><i></i>加入购物车</a>
                        </div>
                    </li>
                 `;
             }
             $("#plist ul").html(html);//放进父元素ul的html里
         },
         error:function(){
             alert("请求商品列表出错,请检查网络!");
         }
     });

四、遇到的bug

错误:ajax里的中文乱码

原因:productlist.js的文本编码不是UTF-8,而是ANSI

解决方法:把js文件用记事本打开,然后另存为,再操作一下编码改成utf-8,然后会弹出替换,点确定,然后把乱码的中文,再打一遍

时间: 2024-10-08 11:05:42

【京东账户】——Mysql/PHP/Ajax爬坑之产品列表显示的相关文章

【京东账户】——Mysql/PHP/Ajax爬坑之添加购物车

一.引言 做京东账户项目中的购物车模块,功能之一就是添加购物车.要用到的是Apach环境,Mysql.PHP以及Ajax. 预计效果:用户点击->"加入购物车"  添加成功  已经2件 二.依据功能创建库.表.记录 创建库:jd 创建表:购物车表 添加多条记录 小坑:购物车表注意尽量少的与产品表重复.只要有:哪个用户?买了哪个商品?买了几个?就够了. 小坑:小计,一般用程序计算,不写死.因为时间不同可能会有打折等变化出现,如果写死,则无法正确得出价格. /***购物车表***/

【京东账户】——Mysql/PHP/Ajax爬坑之页头页尾加载

一.引言 实现京东的账户项目,有一个小功能,页头页尾加载.要用到的是Apach环境,Mysql.PHP以及Ajax. 二.实现 原理: 用php文件分别写一个的页头和一个页尾,放在前后两个div里. 通过jquery发送一个请求 请求这个php. 再把里面的一些小按钮,小图标放在这个div里即可. <div id="header"></div> -- <div id="footer"></div> 小知识1:jquer

Spark on Yarn ”爬坑“集锦(spark1.2)

一.概述 Ha,已经有两个月没有更新blog了.由于近排公司需要引入Spark相关技术,我也是作为技术攻关人员之一,在这段时间使用Spark遇到了挺多问题,跌的坑也比较多,这篇blog主要总结一下这段时间使用Spark遇到的一些问题. 二.遇到的"坑"和爬坑思路 1.SparkSql on yarn-client模式遇到找不到mysql驱动包问题. 解决方案:这个比较简单直接编辑$SPARK_HOME/conf/spark-env.sh文件,将mysql的驱动jarexport进去,如

mpvue 小程序开发爬坑汇总

<!-- 小程序的爬坑记录 --> 1 微信小程序之动态获取元素宽高 var obj=wx.createSelectorQuery(); 2 微信小程序图片自适应 <image class="themeImg" :src="themeImg" mode="widthFix" /> mode设置为widthFix 宽度100% 3.小程序上拉加载 下拉刷新 4.通过 this.$root.$mp.query 进行获取小程序在

安卓易学,爬坑不易——腾讯老司机的RecyclerView局部刷新爬坑之路

针对手游的性能优化,腾讯WeTest平台的Cube工具提供了基本所有相关指标的检测,为手游进行最高效和准确的测试服务,不断改善玩家的体验.目前功能还在免费开放中. 点击地址:http://wetest.qq.com/cube立即体验! 作者:Hoolly,腾讯移动客户端开发工程师. 商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处 WeTest导读 安卓开发者都知道,RecyclerView比ListView要灵活的多,但不可否认的里面的坑也同样埋了不少人.下面让我们看看腾讯开发工程

AngularJs (二) 搭建Deployd 服务爬坑

Deployd 爬坑 按照书上的教程,介绍Deployd 这个东东,首先进入其deployd.com/网页,发现这个东东着实厉害. THE SIMPLEST WAY TO BUILD AN API 按照文档说明我的电脑是windows系统,按照docs说明进入下载,无奈我网络不是很给力,老是不能直接在网站上下载,看到它提供的github下载,下载下来自己新手一个,又不懂怎么安装,顿时就是感觉学习新东西好难啊,自信心顿时消失了一半,还好这个东东是依赖nodeJs和MongoDB的,继续翻阅文档ht

React爬坑秘籍(一)——提升渲染性能

React爬坑秘籍(一)——提升渲染性能 ##前言 来到腾讯实习后,有幸八月份开始了腾讯办公助手PC端的开发.因为办公助手主推的是移动端,所以导师也是大胆的让我们实习生来技术选型并开发,他来做code review.之前也学习过React,当然也是非常合适这一次的开发. 我会梳理这一个月来,自己对架构的思考过程和踩过的坑.当然这一切都不一定是最佳的,所以希望能有更多的建议和讨论. 例子所需库:Webpack.React.Immutable.其中Webpack用于前端构建,如果不清楚的同学可以看这

Android爬坑之旅:软键盘挡住输入框问题的终极解决方案

前言 开发做得久了,总免不了会遇到各种坑.而在Android开发的路上,『软键盘挡住了输入框』这个坑,可谓是一个旷日持久的巨坑--来来来,我们慢慢看. 入门篇 Base 最基本的情况,如图所示:在页面底部有一个EditText,如果不做任何处理,那么在软键盘弹出的时候,就有可能会挡住EditText.对于这种情况的处理其实很简单,只需要在AndroidManifest文件中对activity设置:android:windowSoftInputMode的值adjustPan或者adjustResi

kali linux安装virtualbox虚拟机之爬坑经历

很多kali爱好者想把kali linux作为系统使用,但是有些win下的程序有时候也需要用到,此时需要虚拟机. kali系统在安装虚拟机的时候也会遇到一大堆坑,接下来是我的爬坑过程. 一波三折. 环境 :kali linux 2.0 32位 软件 :virtualbox 虚拟机 0x01  bash: /etc/init.d/vboxdrv: 没有那个文件或目录 安装了virtualbox后出现的问题之一最常见的就是内核问题 网上大多数人的问题都是执行下面的命令 出现如下提醒.然而网上五花八门