2017-02-06 15 views
0

配列内に2つの配列値を取得しようとしています。私は2つの状況があります.1つは実行され、もう1つは実行されません。配列内では、以下の予想される出力で述べたように、単一の配列を得ることはできますが、倍数を得ることはできません。配列内のphp配列は作成できません

[{"id":"3","category":"Name","text":"text with some data","image":"http:\/\/examole.net\/folder\/images\/category1.jpg"},{"id":"4","category":"Name","text":"text with some data","image":"http:\/\/examole.net\/folder\/images\/category1.jpg"}] 

行われ、notdoneクエリ

$response = array(); 
$response2 = array(); 
if(isset($_REQUEST['action']) && $_REQUEST['action']=='test') { 
    $query="select * from exampledb where id='".$db->escape($_REQUEST['id'])."' and workdone='done'"; 
    $num= $db->num_rows($query);   
    if($num) { 
     $rows = $db->get_results($query); 

     foreach($rows as $k=>$row1) { 
      $response[$k]['id'] = $row1['id']; 
       $response[$k]['category'] = $row1['category']; 
       $response[$k]['text'] = $row1['text']; 
       $response[$k]['image'] = $row1['image']; 
      }  
     } else{ 
      $response['message']='No user Found'; 
      $response['status']='fail'; 
     } 

     $query="select * from exampledb where id='".$db->escape($_REQUEST['id'])."' and workdone='notdone'"; 
     $num= $db->num_rows($query);   
     if($num) { 
      $rows = $db->get_results($query); 
      foreach($rows as $k=>$row1) { 
       $response[$k]['id'] = $row1['id']; 
       $response[$k]['category'] = $row1['category']; 
       $response[$k]['text'] = $row1['text']; 
       $response[$k]['image'] = $row1['image']; 
      }  
     } else { 
      $response['message']='No user Found'; 
      $response['status']='fail'; 
     } 
     echo json_encode($response); 
     echo json_encode($response2); 
    } 
} 

期待して出力

[{Done:{{"id":"3","category":"Name","text":"text with some data","image":"http:\/\/examole.net\/folder\/images\/category1.jpg"},{"id":"4","category":"Name","text":"text with some data","image":"http:\/\/examole.net\/folder\/images\/category1.jpg"} }, 
    Notdone:{{"id":"3","category":"Name","text":"text with some data","image":"http:\/\/examole.net\/folder\/images\/category1.jpg"},{"id":"4","category":"Name","text":"text with some data","image":"http:\/\/examole.net\/folder\/images\/category1.jpg"} }}] 
+0

有効なJSONではないため、期待される出力を 'json_encode'で得ることはできません。 –

+0

返信ありがとう、同じ結果を得るためにできること – Shaik

+0

その出力を得ることは可能ですが、代わりに_IS_が有効なものを取得したくないですか? –

答えて

0

とのコード次の2つの方法でこれを行うことができます

1.

あるようにすべてを残すだけSQL /配列処理コードの後echoを移動:あなたの2番目のクエリ

//... [...] ... 
} 
     else{ 
      $response['message']='No user Found'; 
      $response['status']='fail'; 
     } 

echo json_encode($response); //<---- here for the first 

$query="select * from exampledb where id='".$db->escape($_REQUEST['id'])."' and workdone='notdone'"; 
     $num= $db->num_rows($query); //....... 

//... [...] ... 
} 
     else{ 
      $response['message']='No user Found'; 
      $response['status']='fail'; 
     } 
    echo json_encode($response); //<---- here for the second 
//....... 

変更foearch内部の相対的な変数を

// this remains the same from here 
$query="select * from exampledb where id='".$db->escape($_REQUEST['id'])."' and workdone='done'"; 
     $num= $db->num_rows($query);   
     if($num) 
     { 
      $rows = $db->get_results($query); 

      foreach($rows as $k=>$row1) { 

       $response[$k]['id'] = $row1['id']; 
       $response[$k]['category'] = $row1['category']; 
       $response[$k]['text'] = $row1['text']; 
       $response[$k]['image'] = $row1['image']; 
      }  
     } 
     else{ 
      $response['message']='No user Found'; 
      $response['status']='fail'; 
     } 
// ----------------- to here 

// and here .... 
     $query="select * from exampledb where id='".$db->escape($_REQUEST['id'])."' and workdone='notdone'"; 
     $num= $db->num_rows($query);   
     if($num) 
     { 
      $rows = $db->get_results($query); 

      foreach($rows as $k=>$row1) { 
       //... change this with $response2 
       $response2[$k]['id'] = $row1['id']; 
       $response2[$k]['category'] = $row1['category']; 
       $response2[$k]['text'] = $row1['text']; 
       $response2[$k]['image'] = $row1['image']; 
      }  
     } 
     else{ 
      //... and this 
      $response2['message']='No user Found'; 
      $response2['status']='fail'; 
     } 
// 
echo json_encode($response); 
echo json_encode($response2); 

$response2を入力しないと、最後には得られませんjson_encode

関連する問題