2016-09-04 7 views
0

私は、取得されたレコードの数を数える前に、criteriasに一致するテーブル内のすべてのレコードを選択するPHPファイルをコーディングしています。私がやろうとしている何JSONフレンドリーな出力としてフェッチされた配列の返り値

は次のとおりです。 それは5つのレコードを取得すると仮定すると、私はPHPファイルのみを返すようにしたい[{「カウント」:5}]

誰かがファイルを作成する方法を提案することができます上記を返しますか?

<?php 
 
header("Access-Control-Allow-Origin: *"); 
 
header("Content-Type: application/json; charset=UTF-8"); 
 

 
$conn = new mysqli("localhost", "userid", "password", "dbname"); 
 

 
$admin_no = $_GET['admin_no']; 
 

 
$result = $conn->query("Select lecturer_id,admin_no,message,date_time_sent,sender from chat where lecturer_id = 'shizukakudo' and admin_no = '". $admin_no ."'"); 
 

 
$outp = "["; 
 
while($rs = $result->fetch_array(MYSQLI_ASSOC)) { 
 
\t if ($outp != "[") {$outp .= ",";} 
 
\t $outp .= '{"lecturer_id":"' . $rs["lecturer_id"] . '",'; 
 
\t $outp .= '"admin_no":"' . $rs["admin_no"] . '",';     $outp .= '"message":"' . str_replace('"','',$rs["message"]) . '",'; 
 
\t $outp .= '"date_time_sent":"' . $rs["date_time_sent"] . '",'; 
 
\t $outp .= '"sender":"' . $rs["sender"] . '"}'; 
 
} 
 
$outp .="]"; 
 

 
$conn->close(); 
 

 

 

 
echo($outp.length); 
 
?>

答えて

0

使用json_encode():魔法のように

​​
+0

これは動作しません。 'count($ data)'は*テーブルの*レコード数ではなくテーブルの*カラム数*を与えます。 –

0

私は何をしようとしていることである:それは5つのレコードを取得すると仮定すると、私はこれはあなたの条件であればPHPファイルのみ[{"count":5}]

を返すようにしたいですループを使用している点はありません。while

// your code 

$result = $conn->query("Select lecturer_id,admin_no,message,date_time_sent,sender from chat where lecturer_id = 'shizukakudo' and admin_no = '". $admin_no ."'"); 

$outp = array(); 
$outp[]['count'] = $result->num_rows; 
echo json_encode($outp); 

追記:今すぐあなたのクエリはSQLインジェクションの影響を受けやすいのでに関するprepared statementsを学び、クエリを実行した後、単純にこれを行います。また、how you can prevent SQL injection in PHPを参照してください。そのような

+0

作品!どうもありがとう! json_encodeのような便利なことが好きではありませんでしたか?驚いたことに –

+0

緑があなたの答えを刻んだ! –

+0

@LionelLimAhKokありがとうございます。そして、あなたは大歓迎です。 :-) –

関連する問題