最初に始めましょう。タイトルがわかりにくいのでごめんなさい。私はそれを正確に説明する方法を知りませんでしたが、ここに行きます。だから私はデータベースに文字列を照会しています。結果が1つしかない場合は、配列を作成し、情報を入力し、JSONをエンコードして、それを返すのは比較的簡単です。複数の結果がある場合、私は混乱しています。以下のコードは私が使用しているものですが、それが正しいかどうかは非常に疑わしいです。必要なメソッドを使用してJSON形式にエンコードすることはできません。少なくとも私を正しい方向に向けるのを手伝っていただければ、ありがたいです!ありがとうございました!
PHP:
if ($action == 'profile') {
while ($pson = mysql_fetch_array($personQuery)) {
$typeSearch = 'profile';
$profQuery = mysql_query("SELECT * FROM tableName WHERE ColumnName LIKE '$query'");
$compQuery = mysql_query("SELECT * FROM tableName2 WHERE ColumnName LIKE '$query'");
if ($profQuery && mysql_num_rows($profQuery) > 0) {
$personQueryRows = mysql_num_rows($profQuery);
while ($row = mysql_fetch_array($profQuery)) {
if ($compQuery && mysql_num_rows($compQuery) > 0) {
while ($com = mysql_fetch_array($compQuery)) {
if (mysql_num_rows($profQuery) > 1) {
$compQueryRows = mysql_num_rows($compQuery);
if ($compQueryRows > 0) {
$compReturn = "true";
} else {
$compReturn = "false";
}
$nameArray = Array(
"success"=>"true",
"date"=>date(),
"time"=>$time,
"action"=>$action,
"returned"=>"true"
);
global $result;
for ($i=1;$i<=$personQueryRows;$i++) {
$nameResult[$i]=Array(
"id"=>$row['id'],
"name"=>$row['name'],
"gender"=>$row['gender'],
"comp"=>$row['company'],
"queryType"=>"profile"
);
$result = array_merge($nameArray, $nameResult[$i]);
}
$encodedJSON = json_encode($result);
echo $encodedJSON;
}
}
}
}
}
}
}
}
返されたJSON:
{"success":"true","date":"Jun 29 2012","time":"14:43:16","action":"profile","returned":"true","id":"14321","name":"John Smith","gender":"male","comp":"ABC Studios, LLC.","queryType":"profile"}
{"success":"true","date":"Jun 29 2012","time":"14:43:16","action":"profile","returned":"true","id":"292742","name":"John Smith","gender":"male","comp":"DEF Studios, LLC.","queryType":"profile"}
JavaScriptエラー(JSONの解析時):
Uncaught SyntaxError: Unexpected token {
PS私はPHP配列とJSONフォーマットを始めたばかりなので、これが完全に間違っている場合はお詫び申し上げます。まだ学習段階です。