2015-10-07 121 views
0

如何,現在我的代碼看起來 如何從MYSQL反序列化我的查詢結果?

$client = $_GET['client_number_search']; 
 
    
 

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

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

 

 

 

 
$arr = array(); 
 
\t 
 
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); 
 

 
} 
 
\t 
 
\t 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,因爲我想稍後將其用作AP P在電話差距)。

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); 

請幫助

回答

3

使用unserialize在PHP

例如

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

echo json_encode($demo); 

你的代碼,同時顯示循環

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); 

} 
+0

沒有什麼可以改變。我試過這個--- \t $ US = unserialize($ arr); \t \t echo json_encode($ US); –

+0

不要這樣做,我編輯你的代碼只能解僱''r - >服務' –

+0

(謝謝你的幫助)當我使用你的while循環時,我得到一個500內部服務器錯誤。 –

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);