【问题标题】:How can I unserialize my query results from MYSQL?如何反序列化来自 MYSQL 的查询结果?
【发布时间】:2016-01-04 13:49:01
【问题描述】:

我的代码现在的样子

 $client = $_GET['client_number_search'];
 

$sql=("SELECT * FROM tobytemp.fcl_reports WHERE client_number = '" . $client . "'");

$result = $dbLink->query($sql);




$arr = array();
	
while ($r = $result->fetch_object()) {
   $temp=[
      "client_number" => $r->client_number,
      "client_name" => $r->client_name,
      "service" => unserialize($r->service),
      "volume" => $r->volume,
      "deliver_point" => $r->deliver_point,
      "port_orgin" => $r->port_orgin,
      "size" => $r->size
   ];

    array_push($arr,$temp);

}
	
	echo json_encode($arr);





/* ERROR

Request Method:GET
Status Code:500 Internal Server Error



*/

像这样填充在我的表中的当前数据 -

service - a:2:{i:0;s:6:"Inport";i:1;s:6:"Export";}

我希望它显示为 -

Service-
Import
Export 

(我不能在我的clientreports.html 页面上使用 PHP,因为我想稍后将其用作电话间隙的应用程序)。

AJAX 调用 (clientreports.html)

<script type="text/javascript">
    $("#show_clientx").click(function(e) {

        $("table#client_profile").empty();

        $.ajax({
            url: "http://cmlsys/toby/client_profile.php?client_number_search=" + $("#client_number").val(),
            type: "GET",
            dataType: "json",
            success: function(html) {

                //  $("table#client_profile").append('<tr><th>Client Number</th><th>Client Name</th><th>Address</th></tr>');

                jQuery.each(html, function(key, value) {

                    $("table#client_profile").append('<tr><td>' + value.client_number + '</td><td> client_name - ' + value.client_name + '</td></tr><tr></br><td>service - ' + value.service + '</td></br><td>size - ' + value.size + '</td></br><td>volume - ' + value.volume + '</td></br><td>deliver_point -' + value.deliver_point + '</td></br><td>port_orgin - ' + value.port_orgin + '</td></tr>');

                });

            },
            error: function(e) {
                console.log("Error: " + e);
            }
        });
    });
</script>

TO - client_profile.php

$client = $_GET['client_number_search'];

$sql = ("SELECT * FROM tobytemp.fcl_reports WHERE client_number = '".$client.
    "'");

$result = $dbLink - > query($sql);            

$arr = array();

while ($r = $result - > fetch_object()) {

    array_push($arr, array("client_number" => $r - > client_number, "client_name" => $r - > client_name, "service" => $r - > service, "size" => $r - > size, "volume" => $r - > volume, "deliver_point" => $r - > deliver_point, "port_orgin" => $r - > port_orgin));

}

echo json_encode($arr);

请帮忙

【问题讨论】:

    标签: javascript php jquery ajax serialization


    【解决方案1】:

    在 php 中使用反序列化

    例如

    $demo=unserialize('a:2:{i:0;s:6:"Inport";i:1;s:6:"Export";}');
    
    echo json_encode($demo);
    

    在您的代码中,您可以更改 while 循环

    while ($r = $result->fetch_object()) {
       $temp=[
          "client_number" => $r->client_number,
          "client_name" => $r->client_name,
          "service" => unserialize($r->service),
          "volume" => $r->volume,
          "deliver_point" => $r->deliver_point,
          "port_orgin" => $r->port_orgin,
          "size" => $r->size
       ];
    
        array_push($arr,$temp);
    
    }
    

    【讨论】:

    • 什么都不显示。我试过这个--- $US=unserialize($arr); echo json_encode($US);
    • 不,不要那样做,我只编辑你的代码取消序列化$r - &gt; service
    • (感谢您的帮助)我在使用您的 while 循环时收到 500 内部服务器错误。
    • 它是一个空格,我将其删除。你现在可以试试
    • 请不要放弃我 :) @DeveloperH
    【解决方案2】:
    $arr = array();
    
    while ($r = $result->fetch_object()){
        array_push($arr, array (
        "client_number" => $r ->client_number, 
        "client_name" => $r->client_name, 
        "service" => unserialize($r ->service),
        "size" => unserialize($r ->size),
        "volume" => unserialize($r ->volume),
        "deliver_point" => unserialize($r ->deliver_point),
        "port_orgin" => unserialize($r ->port_orgin))
        );
    
    }
    
    
    
    echo json_encode($arr);
    

    【讨论】:

      猜你喜欢
      • 2014-10-29
      • 2012-01-15
      • 1970-01-01
      • 1970-01-01
      • 2023-02-02
      • 1970-01-01
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      相关资源
      最近更新 更多