2017-09-02 12 views
1

私はPHP開発者ではありません。私は Include関数の結果がjson応答

API以下
mysqli_query($conn,"SET NAMES utf8"); 
$sql = "SELECT tbl_quotes.*,au_picture as picture FROM tbl_fav INNER JOIN tbl_quotes INNER JOIN tbl_category ON user_id='".$userId."' AND qu_author=_auid AND fav_qu_id=_quid Order By '".$order."' DESC LIMIT ".$limit." OFFSET ".$offset; 


$result = mysqli_query($conn, $sql); 

$arr = array(); 
while($r = mysqli_fetch_assoc($result)) { 

    $arr[] = $r; 
} 

echo json_encode($arr, JSON_UNESCAPED_UNICODE); 

mysqli_close($conn); 

で共有し、数などを表示していたものでAndroidのアプリケーションを持っている今、私はフィールドがqu_likeと共有する場であるよう

コードの下
if ($value > 999 && $value <= 999999) { 
    $result = floor($value/1000) . ' K'; 
} elseif ($value > 999999) { 
    $result = floor($value/1000000) . ' M'; 
} else { 
    $result = $value; 
} 

のようにKスタイルでその番号を変換したいですはqu_shareです。誰でも私を助けてくれます。私はどのように変換番号にこの関数を使用し、それを私のjsonに含めることができますか?私はコードの下で行われている

おかげ

+0

のいずれの数値ですか?おそらく、JSONに変換する前に配列の値を変更する必要がありますか?その場合はwhileループ内で呼び出す必要があります – ADyson

答えて

0

....

function Get_convert_to($value){ 


    if ($value > 999 && $value <= 999999) { 
    $result = floor($value/1000) . ' K'; 
} elseif ($value > 999999) { 
    $result = floor($value/1000000) . ' M'; 
} else { 
    $result = $value; 
} 


    return $result; 
    } 

その作業罰金....

0

することができますJSONエンコーディングの前にDBから返された配列を変更するには以下のようにします。

<?php 
//1. create the formatting function 
function formatValue($value) { 
    if ($value > 999 && $value <= 999999) { 
     return $result = floor($value/1000) . ' K'; 
    } elseif ($value > 999999) { 
     return $result = floor($value/1000000) . ' M'; 
    } else { 
     return $result = $value; 
    } 
} 

mysqli_query($conn,"SET NAMES utf8"); 
$sql = "SELECT tbl_quotes.*,au_picture as picture FROM tbl_fav INNER JOIN tbl_quotes INNER JOIN tbl_category ON user_id='".$userId."' AND qu_author=_auid AND fav_qu_id=_quid Order By '".$order."' DESC LIMIT ".$limit." OFFSET ".$offset; 


$result = mysqli_query($conn, $sql); 
//2. check if there's a result 
if($result){ 
    $arr = array(); 
    while($r = mysqli_fetch_assoc($result)) { 

     $arr[] = $r; 
    } 
    //3. free result set 
    mysqli_free_result($result); 

    //4. update qu_like and qu_share keys in the $arr array before creating the json 
    foreach ($arr as &$value) { 
     $value['qu_like'] = formatValue($value['qu_like']); 
     $value['qu_share'] = formatValue($value['qu_share']); 
    } 

    echo json_encode($arr, JSON_UNESCAPED_UNICODE); 
} 

mysqli_close($conn); 

また、SQL文でパラメータをバインドする必要があります。以下のsqlが動作するかどうかを確認してください。詳細については、http://php.net/manual/en/mysqli-stmt.bind-param.php

$sql = "SELECT tbl_quotes.*,au_picture as picture FROM tbl_fav INNER JOIN tbl_quotes INNER JOIN tbl_category ON user_id=? AND qu_author=? AND fav_qu_id=? Order By ? DESC LIMIT ? OFFSET ?"; 
if($stmt = $mysqli->prepare($sql)) { 
    /*i - integer 
     d - double 
     s - string 
     b - BLOB 
     change first argument of bind_params to suit your variables :) 
    */ 
    $stmt->bind_params("siisii",$userId,_auid,_auid,$order,$limit,$offset); 
    $stmt->execute(); 
    /* bind result variables */ 
    $stmt->bind_result($col1,$col2,$col2); 
    //then replace while statement above as below 
    while ($stmt->fetch()) { 
     //... echo $col1 etc 
    } 
}