【问题标题】:need to echo one row in json encode需要在 json 编码中回显一行
【发布时间】:2016-04-03 06:42:55
【问题描述】:

我有这个 php 文件,我想用 json 编码回显一个 ticketnumber 位于其中的数组,这意味着我想在 isset POST 这个数组的 ticketnumber 时只打印一个数组,但我尝试过,每次我得到错误如何解决这个问题另外我使用了循环(while)所以它对一个数组是否正确?

<?php
define('HOST', 'localhost');
define('USER', 'root');
define('PASS','');
define('DB', 'ala');

$con = mysqli_connect(HOST,USER,PASS,DB) or die ('unable to connect');


    if ($_SERVER ['REQUEST_METHOD']=='POST') {

        $ticketnumber = $_POST['ticketnumber'];

        $sql = " SELECT * FROM contact WHERE ticketnumber = '$ticketnumber' ";

        $res = mysqli_query($con, $sql);

         $result = array();

        while($get = mysqli_fetch_array($res))
        {
            array_push($result,array('ticketnumber' =>$get[0], 'subject' =>$get[1],'response' =>$get[2]));
        }
        if(isset($get)){
            echo json_encode(array("responseticket"=>$result));
        } else {
            echo " error";
        }

}

?>

【问题讨论】:

  • 您遇到什么错误?另外,请阅读SQL Injection,并了解如何更改您的代码,使其不易受此攻击。目前您的应用程序(和数据库)存在风险。
  • $ticketnumber = (int)$_POST['ticketnumber'];

标签: php arrays json web


【解决方案1】:

您没有定义变量 $get 。 我认为应该有..

 if(!empty($result)){
            echo json_encode(array("responseticket"=>$result));
        } else {
            echo " error";
        }

【讨论】:

  • isset() 不适用于数组。从技术上讲,$result 设置array(),因此无论$result 是否有任何值,if 语句都会返回true。像if(!empty($result)){...} 这样的东西会更好。
【解决方案2】:

像这样试试..

if(!empty($get)){
 echo json_encode(array("responseticket"=>$result));
} else {
 echo " error";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 2013-03-19
    • 1970-01-01
    相关资源
    最近更新 更多