分类 PHP 下的文章

PHP中$_REQUEST、$_POST、$_GET的区别

1,$_GET 变量接受所有以 get 方式发送的请求,及浏览器地址栏中URL的 ? 之后的内容。
2,$_POST 变量接受所有以 post 方式发送的请求,例如,一个 form 以 method=post 提交,提交后 php 会处理 post 过来的全部变量。
3,$_REQUEST 支持两种方式发送过来的请求,即 postget 它都可以接受,显示不显示要看传递方法,get 会显示在 url 中(有字符数限制),post 不会在 url 中显示,可以传递任意多的数据(只要服务器支持)。

PHP实例:php如何在json里嵌套一个json

常见需求:把一个父栏目下的子栏目循环出来,每个子栏目下再显示最新的几篇内容。

<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "test";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

//一级菜单id
$pid = $_REQUEST['pid'];
$sql = "SELECT  *  FROM `master_class` WHERE pid=" . $pid;

//分类数据
$class_result = $conn->query($sql);

//最终数据json
$data_json = array();
//文章数据
$tmp_art=array();
//分类
$tmp_cla=array();

//有结果 
if ($class_result->num_rows > 0) {
    // while 输出数据
    while ($row = $class_result->fetch_assoc()) {
        //得到classid
        $classid = $row['id']; 
        $article_sql = "SELECT  *  FROM  `master_article` WHERE `classid`=" . $classid; 
        $tmp_cla['id']=$row['id'];
        $tmp_cla['name']=$row['name'];
        $tmp_cla['pid']=$row['pid'];
        
        //查询文章数据
        $article_result = $conn->query($article_sql);
        if ($article_result->num_rows > 0) {
            // while 输出数据
            while ($r= $article_result->fetch_assoc()) { 
               $tmp=array('id'=>$r['id'],'name'=>$r['name'],'classid'=>$r['classid']);
               $tmp_art[]=$tmp;
            }
            $tmp_cla['article']=$tmp_art;
            $tmp_art=null;
        } 
        $data_json[]=$tmp_cla;
    }

} else {
    echo "0 结果";
}

echo json_encode($data_json);

$conn->close();
?>

PHP实例:将SQL查询结果循环显示,但最后一条数据显示额外的结构

<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "test";
 
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} 
 
$sql = "SELECT * FROM master";
$result = $conn->query($sql);
//有结果 
if ($result->num_rows > 0) { 
    //返回数据总条数
    $data_count=$result->num_rows;
    //方案1 
    //循环次数
    $num=1;
    // while 输出数据
    while($row = $result->fetch_assoc()) { 
        //之前的次数
        if($num<$data_count){
            echo 'num:'.$num.'id='.$row['id'].'<br/>';
        }
        //当循环次数等于数据总是 就是最后一条数据
        if($data_count==$num){
            echo 'Last num;'.$num.'id='.$row['id'].'<br/>'; 
        }
        //累加循环次数
        $num++;
    }
     
} else {
    echo "0 结果";
}
$conn->close();
?>