我有這樣的代碼在PHP:如何在PHP中循環接收到的數組並查詢數據庫以返回新數組?
<?php
include_once("JSON.php");
$json = new Services_JSON();
//1. PROCESS RECEIVED ARRAY
$handle = fopen("php://input", "rb");
$http_raw_post_data = '';
while (!feof($handle)) {
$http_raw_post_data .= fread($handle, 8192);
}
fclose($handle);
//just decode to see what kind of object it is
$post_data = json_decode($http_raw_post_data,true);
if (is_array($post_data))
$response = array("status" => "ok", "code" => 0, "original request" => $post_data);
else
$response = array("status" => "error", "code" => -1, "original_request" => $post_data);
//CALL DB QUERY
$link = mysql_pconnect("localhost", "user", "pass") or die("Could not connect");
mysql_select_db("mydb") or die("Could not select database");
//CREATE FINAL ARRAY TO RETURN
$arrayToReturn = array();
//----------------------THIS FAILS, POSSIBLY DUE TO WHEN IT RETURNS
foreach ($post_data as $value)
{
//CREATE QUERY
$result = mysql_query("SELECT username, SUM(points) AS PUNTOS FROM tags WHERE username='$value' GROUP BY username");
echo "executing query...";
//EXECUTE QUERY & ADD EACH USER/POINTS DICTIONARY TO $resultado ARRAY
$resultado = array();
while($obj = mysql_fetch_object($result))
{
$resultado[] = $obj;
}
//STORE RESULTS IN NEW OBJECT TO RETURN
$arrayToReturn[] = $resultado;
}
?>
我剛纔編輯的我原來的問題,現在我得到我的數組...我的iOS應用程序,這是來自服務器的響應記錄的響應串是:
執行查詢...陣列 執行查詢...陣列 [[{ 「用戶名」: 「xcodeSim」, 「PUNTOS」: 「5」}],[{ 「用戶名」: 「dannyrodri」,」 PUNTOS「:」5「}]]
不確定數組來自哪裏,但我得到一個有兩個數組的數組。我想我只需要調整它,使其成爲一個只有2個字典的數組。如何將此代碼重新編碼爲我的iOS應用程序?
什麼是您預期的結果和你得到了什麼結果 – Miguelo
不應該查詢使用'$ value',而不是'$ _POST ['userNa']'? – Barmar
而當你在一個字符串中插入一個數組引用時,你必須省略引號。你應該得到一個語法錯誤,是嗎? – Barmar