zoukankan      html  css  js  c++  java
  • 不得不补:PHP的JSON, SQL

    不管怎么说,还是得感谢慕课网,提供了很多免费的视频教学。

    学习自: https://www.imooc.com/view/68

    前端页面:

    <!DOCTYPE html>
    <html>
        <head>
            <title>第二个练习</title>
            <meta charset="utf-8">
            <meta name="viewport" content="width=device-width">
            <script src="jquery-1.8.3.min.js"></script>
            <script>
                $("document").ready(function(){
                    var url = 'ser2.php';
                    var data={'do':'first'};
                    
              // getJSON() 方法使用 AJAX 的 HTTP GET 请求获取 JSON 数据。 $.getJSON(url,data,
    function(res){ $("#username").val(res.username); $("#password").val(res.password); }); var data={'do':'second'}; $.getJSON(url,data,function(res){ $("#members").val(res[1].username + ' ' + res[2].username + ' ' + res.three.members.username); }); var data={'do':'third'}; $.getJSON(url,data,function(res){ $("#address").val(res.address['2'].address + ' ' + res.address.three.members.username); }); }); </script> </head> <body> <h2>一维数组练习</h2> <input type="text" name="username" id="username" /><br /> <input type="text" name="password" id="password" /><br /> <h2>多维数组练习(一组会员信息)</h2> <textarea id="members" style="200px;height:60px"></textarea> <h2>对象实战(一组地址信息)</h2> <textarea id="address" style="300px;height:60px"></textarea> </body> </html>

    后端页面, 也就是前端所请求的 ser2.php :

    <?php
    
    //示例数据
    $member['username'] = 'alex'; $member['password'] = '123456'; $do = $_REQUEST['do']; $members['1']['username'] = 'Thanos'; $members['1']['password'] = 'wuxianshoutao'; $members['2']['username'] = '雷神'; $members['2']['password'] = 'thor'; $members['2']['address'] = 'arsjade'; $members['three']['members']['username'] = '这是该死的第三个'; class addressClass{ public $address=array(); public function setAddress($array){ $this->address = $array; } public function getAddress(){ return $this->address; } } $addressObj = new addressClass(); $addressObj->setAddress($members); switch($do){ case 'first': echo json_encode($member); break; case 'second': echo json_encode($members); break; case 'third': echo json_encode($addressObj); break; default: break; }

    不得不补的小知识,也得花点时间。

     -------------------------------------分割线-------------------------------------

     将JSON转为JS对象

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
    </head>
    <body>
    
    <h2>为 JSON 字符串创建对象</h2>
    <p id="demo"></p>
    <script>
    var text = '{ "sites" : [' +
        '{ "name":"Runoob" , "url":"www.runoob.com" },' +
        '{ "name":"Google" , "url":"www.google.com" },' +
        '{ "name":"Taobao" , "url":"www.taobao.com" } ]}';
        
    obj = JSON.parse(text);
    document.getElementById("demo").innerHTML = obj.sites[0].name + " " + obj.sites[0].url;
        var x;
        for (x in obj.sites){
            document.write(obj.sites[x]['name'] +" | " + obj.sites[x]['url'] +'<br />');
        }
    </script>
    
    </body>
    </html>

    将** 转为JSON

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
    </head>
    <body>
    
    <p id="demo"></p>
    <script>
    var str = {"name":"菜鸟教程", "site":"http://www.runoob.com"}
    str_pretty1 = JSON.stringify(str)
    document.write( "只有一个参数情况:" );
    document.write( "<br>" );
    document.write("<pre>" + str_pretty1 + "</pre>" );
    document.write( "<br>" );
    str_pretty2 = JSON.stringify(str, null, 4) //使用四个空格缩进
    document.write( "使用参数情况:" );
    document.write( "<br>" );
    document.write("<pre>" + str_pretty2 + "</pre>" ); // pre 用于格式化输出
    </script>
    
    </body>
    </html>

    SQL 语句的几个小知识点:

    1. 取某列varchar中第3位仅为数字的,用like肯定比substring要快:

     SELECT a.WONO from [dbo].[Temp] as a where a.WONO like '__[0-9]%' 
    -- like 中的 下划线表示单个字符,所以用了2个占2位, [0-9]表示这个位置仅为数字, % 不用解释了吧。 

    看着有点正则表达式的样子,那么 Like '__[^0-9]%'  就表示不是数字的。

    2. 两列nchar 拼接时用+号连接,去空格时只能用 LTRIM 和 RTRIM 

    3. 数字型的日期'20180501' 想要计算距今天数,需要先用CAST转换为日期。

    SELECT DATEDIFF(day, CAST(RTRIM(OPNDT8) as datetime),GETDATE()) as Days  --得到距今天数

    反过来,日期转为8位数字: CONVERT(VARCHAR(8),GETDATE(),112)  

    4. 使用Exists代替直接in:

    select * from emp 
    where deptno in(select  deptno from dept );
    
    select * from emp e
    where  exists(select 1 from dept d where d.deptno=e.deptno );

     

  • 相关阅读:
    separable-sss
    Separable Subsurface Scattering Computer Graphics Forum 2015
    GPU Gems 3》:真实感皮肤渲染技术总结
    Subsurface scattering support in Blinn-Phong material
    vue-3d-model
    Ubuntu16.04 安装显卡驱动 cuda,cudnn
    vue.js three.js component
    imagemagick Selective blur
    Leetcode 201.数字范围按位与
    Leetcode 190.颠倒二进制位
  • 原文地址:https://www.cnblogs.com/frx9527/p/json_of_php.html
Copyright © 2011-2022 走看看