2016-12-14 50 views
0

這可能很容易,而且我可能會在這之後將自己踢上屁股,但我有以下代碼,它可以顯示錶格中的數據的html或json並將其返回。這段代碼爲什麼給我重複結果?

<?php 
session_start(); 
$base = dirname(dirname(__FILE__)); 
include($base."/include/db.php"); 

global $conn; 
$trees = []; 
$treeBoxes = []; 
if(isset($_SESSION['clientId'])) { 
    $clientId = $_SESSION['clientId']; 
    $query = $conn->prepare("SELECT * FROM ct_trees WHERE client_id=?"); 
    $query->bind_param('i', $clientId); 
    $query->execute(); 
    $result = $query->get_result(); 
    if($result->num_rows > 0) { 
     while($row = $result->fetch_assoc()) { 
      $tree_id = $row['id']; 
      $tree_name = $row['name']; 
      $query = $conn->prepare("SELECT id FROM ct_connections WHERE tree_id=?"); 
      $query->bind_param('i', $tree_id); 
      $query->execute(); 
      $result2 = $query->get_result(); 
      $connections = $result2->num_rows; 
      array_push($treeBoxes, '<span class="checkbox abc-checkbox abc-checkbox-success">', 
      '<input id="tree'.$tree_id.'" type="checkbox" rel="'.$tree_id.'">', 
      '<label for="tree'.$tree_id.'">'.$tree_name.'</label>', 
      '</span>'); 
      array_push($trees, ["id" => $tree_id, "name" => $tree_name, "connections" => $connections]); 
      if(isset($_GET['json'])) { 
       echo json_encode($trees); 
      } else { 
       echo join("", $treeBoxes); 
      } 
     } 
    } 
} 
?> 

現在讓我們說,例如,我們想要的JSON結果,我得到以下字符串:

[{"id":1,"name":"My Tree","connections":4360}][{"id":1,"name":"My Tree","connections":4360},{"id":4,"name":"Another Tree","connections":0}] 

現在,出於某種原因,它給我一個數組的第一個結果,和那麼相同的結果,但與其他行,在一個單獨的數組中。

+1

後while循環移動你的迴音 – Yoleth

回答

1

固定它,我知道這會是愚蠢的:

<?php 
session_start(); 
$base = dirname(dirname(__FILE__)); 
include($base."/include/db.php"); 

global $conn; 
$trees = []; 
$treeBoxes = []; 
if(isset($_SESSION['clientId'])) { 
    $clientId = $_SESSION['clientId']; 
    $query = $conn->prepare("SELECT * FROM ct_trees WHERE client_id=?"); 
    $query->bind_param('i', $clientId); 
    $query->execute(); 
    $result = $query->get_result(); 
    if($result->num_rows > 0) { 
     while($row = $result->fetch_assoc()) { 
      $tree_id = $row['id']; 
      $tree_name = $row['name']; 
      $query = $conn->prepare("SELECT id FROM ct_connections WHERE tree_id=?"); 
      $query->bind_param('i', $tree_id); 
      $query->execute(); 
      $result2 = $query->get_result(); 
      $connections = $result2->num_rows; 
      array_push($treeBoxes, '<span class="checkbox abc-checkbox abc-checkbox-success">', 
       '<input id="tree'.$tree_id.'" type="checkbox" rel="'.$tree_id.'">', 
       '<label for="tree'.$tree_id.'">'.$tree_name.'</label>', 
       '</span>'); 
      array_push($trees, ["id" => $tree_id, "name" => $tree_name, "connections" => $connections]); 
     } 
     //Moved echo outside of while loop. 
     if(isset($_GET['json'])) { 
      echo json_encode($trees); 
     } else { 
      echo join("", $treeBoxes); 
     } 
    } 
} 
?> 
相關問題