2017-02-14 11 views
0

私のPHPコードは、このJSON出力をPHP mysqliでエンコードするには?

test.phpをのように見える

<?php 
    $connect = mysqli_connect("","","",""); 
    global $connect; 

    if (isset($_POST['login'])) 
    { 
     $login = $_POST['login']; 

     $sql = "SELECT * FROM table WHERE login='$login'"; 
     $result = mysqli_query($connect, $sql); 
     if ($result && mysqli_num_rows($result) > 0){ 
      while ($row = mysqli_fetch_array($result)) { 

       $login_db = $row['login']; 
       $real_namedb = $row['real_name']; 
       $email_db = $row['email']; 
       $dept_db  = $row['dept']; 
       $division_db = $row['division']; 

       $output= array('messages' => '1', 
               'login' => $login_db, 
               'real_name' => $real_namedb,  
               'email' => $email_db, 
               'dept' => $dept_db, 
               'division' => $division_db 
           ); 
       echo json_encode($output); 
       exit(); 
      } 
     mysqli_free_result($result); 
     } 
     else { 
      $output = array('messages' => '2', 'login' => 'wrong credentials from PHP code!'); 
      echo json_encode($output); 
      echo mysqli_error($connect); 
      exit(); 
     } 
    } 
    else 
    { 
     $output = array('messages' => '3', 'login' => 'No post data'); 
     echo json_encode($output); 
     exit(); 
    } 
?> 
<!DOCTYPE html> 
<html> 
<head><title></title> 
</head> 
<body> 
    <form action="test.php" method="post"> 
     <table> 
      <tr> 
       <td><i class="fa fa-unlock-alt"></i> </td> 
       <td>Email : </td> 
       <td><input type ="text" name="login" size="30"></td> 
      </tr> 
     </table>  

     <p><input type ="submit" name="Submit" value="DISPLAY"> </p>    
    </form> 
</body> 
</html> 

この

{"messages":"1","login":"ID0111","real_name":"NAME HERE","email":"[email protected]","dept":"IT","division":"MDO"} 
{"messages":"1","login":"ID0112","real_name":"NAME HERE2","email2":"[email protected]","dept":"IT","division":"MDO"} 

私の質問のような表示JSON出力上記の私のコードにするために上記のPHPコードを変更する方法ですこのようなJSON出力の表示?シングルログインに複数の「メッセージ」値があることを意味します。

{ 
    "login":"ID0111", 
    "real_name":"NAME HERE", 
    "messages": 
       [ 
        { 
         "refno":"1234", 
         "email":"[email protected]", 
         "dept":"IT", 
         "division":"MDO" 
        }, 
        { 
         "refno":"1345", 
         "email":"[email protected]", 
         "dept":"IT", 
         "division":"MDO" 
        }, 
       ] 
} 

誰かが助けることができれば幸いです。ありがとう。

+1

ループ内で「終了」します。私はあなたが出力で2行を得る方法を見ません。 –

+0

彼は2回jsonをエンコードしているので –

答えて

1

最初の配列にはlogin、realname、2番目の配列にはrefno、email、dept、divisionを与え、2番目の配列を最初の配列にマージしてからjson_encode()を使います。

<?php 

    $result =array(); 
    $message=array(); 

    $result['login'] ='ID0111'; 
    $result['real_name'] ='NAME HERE'; 
    $message['refno'] ='1234'; 
    $message['email'] ='[email protected]'; 
    $message['dept'] ='IT'; 
    $message['division'] ='MDO'; 
    $result['message'] =$message; 

    echo json_encode($result); 


    ?> 
+0

どのように両方のアレイを1つの出力に結合するのですか?あなたは答えのコードを更新できますか?ありがとう – Jamilah

+0

ya私はコードをいくつかの時間を与える更新されます。 – user123

+0

ここで私はサンプルコードを提供しました。 – user123

関連する問題