2017-02-14 3 views
0

meine PHP-Code wie folgt aussehenWie codiert man die JSON-Ausgabe in 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> 

oben Anzeige JSON Ausgabe Mein Code wie dieser

{"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"} 

Meine Frage ist, wie oben PHP-Code zu ändern, um JSON-Ausgabe wie folgt angezeigt? Was ich meine ist einzige Login mehr „Nachrichten“ Wert

{ 
    "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" 
        }, 
       ] 
} 

Schätze hat, wenn jemand helfen kann. Vielen Dank.

+1

Sie "verlassen" innerhalb der Schleife. Ich sehe nicht, wie du 2 Zeilen in der Ausgabe bekommst. –

+0

, weil er json zwei mal codiert hat –

Antwort

1

Erstellen Sie zu zwei Arrays, in ersten Array geben Sie Login, Realname und in zweiten Array geben Sie Refno, E-Mail, Abteilung, Division dann fusionieren Sie die zweite mit ersten Array und verwenden Sie dann 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

Wie kombinieren Sie beide Array in einzelne Ausgabe? Kannst du den Code in deiner Antwort aktualisieren? danke – Jamilah

+0

ya ich werde upu code etwas zeit geben. – user123

+0

Hier gab ich Beispielcode, überprüfen Sie es einmal, es kann helfen. – user123