2017-01-06 7 views
1

내 웹 사이트에 대한 목록보기를 만들려고합니다. 나는 이것을 만들려고 노력했다. 그래서 나는 모든 데이터가 담긴 긴리스트만을 가지고있다.SQL 쿼리의 SQL 쿼리 PHP

$conn = new mysqli($db_servername, $db_username, $db_password, $db_dbname); 
if ($conn->connect_error) { } 

$sql = "SELECT * FROM Home_Rooms"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 

    echo " 
<div class=\"container\"><hr></div> 
<div class=\"container-fluid\"> 
    <div class=\"row\"> 
    <div class=\"col-sm-1\"> 
    </div> 
    <div class=\"col-sm-10\"> 
     <div class=\"panel-group\" id=\"accordion\">"; 

    while($row = $result->fetch_assoc()) { 
     $room = $row["name"]; 
     echo " 
     <div class=\"panel panel-info\"> 
      <div class=\"panel-heading\"> 
      <h4 class=\"panel-title\"><a data-toggle=\"collapse\" data-parent=\"#accordion\" href=\"#collapse" .$row["id"]."\">" .$row["name"]."</a></h4> 
      </div> 
      <div id=\"collapse" .$row["id"]."\" class=\"panel-collapse collapse\"> 
      <div class=\"panel-body\">"; 

$conn = new mysqli($db_servername, $db_username, $db_password, $db_dbname); 
if ($conn->connect_error) { } 

$sql = "SELECT * FROM Home_Devices WHERE room='$room'"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    while($row_room = $result->fetch_assoc()) { 
     echo " 
     <div class=\"media\"> 
     <div class=\"media-left\"> 
      <img src=\"/image/pictures/" .$row_room["type"].".png\" class=\"media-object\" style=\"width:60px\"> 
     </div> 
     <div class=\"media-body\"> 
      <h4 class=\"media-heading\"><a href=\"/dashboard/" .$row_room["sensor_id"]."\">" .$row_room["room"]." - " .$row_room["name"]."</a></h4> 
      <p>Sensor ID: " .$row_room["sensor_id"]."</p> 
     </div> 
     </div>"; 
    } 
} else { 
    echo "<p>No devices found, you can add devices <a href=\"/settings\">here</a>.</p>"; 
} 

     echo"</div> 
      </div> 
     </div>"; 
    } 

    echo " 
     </div> 
    </div> 
    </div> 
</div>"; 

} else { 
    echo "<p>No rooms found, you can add rooms <a href=\"/settings\">here</a>.</p>"; 
} 
$conn->close(); 

그러나 이것은 모든 방을로드하지 않았으며 첫 번째 방만로드했습니다. 누군가가이 문제를 해결하도록 도울 수 있습니까? 이게 가능한가 아니면 내가 잘못하고있는 것인가?

+0

, 당신은 $ 결과 2 번을 사용하고 있습니다 .. – Naruto

+0

@Naruto 그래서 alle 그 배열 다른 확인해야합니다? –

+0

@ Vítek 아니, 그때 나는 페이지를로드하는 중 오류가 발생하기 때문에. –

답변

1

while 문 안에 $ conn을 정의 할 필요는 없습니다. 이미 코드 시작 부분에 정의되어 있습니다. 또한 왜 Home_Rooms와 같은 방 데이터에 대해 동일한 변수 $ result를 사용하고 있습니까? 두 번째로 다른 변수를 사용해보십시오. 아마도 while 구문이 엉망이 될 수 있습니다.

0

나는 작동하고있다.

나는 모든 배열을 다르게 변경해야했다.

$conn = new mysqli($db_servername, $db_username, $db_password, $db_dbname); 
if ($conn->connect_error) { } 

$sql = "SELECT * FROM Home_Rooms"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 

    echo " 
<div class=\"container\"><hr></div> 
<div class=\"container-fluid\"> 
    <div class=\"row\"> 
    <div class=\"col-sm-1\"> 
    </div> 
    <div class=\"col-sm-10\"> 
     <div class=\"panel-group\" id=\"accordion\">"; 

    while($row = $result->fetch_assoc()) { 
     $room = $row["name"]; 
     echo " 
     <div class=\"panel panel-info\"> 
      <div class=\"panel-heading\"> 
      <h4 class=\"panel-title\"><a data-toggle=\"collapse\" data-parent=\"#accordion\" href=\"#collapse" .$row["id"]."\">" .$row["name"]."</a></h4> 
      </div> 
      <div id=\"collapse" .$row["id"]."\" class=\"panel-collapse collapse\"> 
      <div class=\"panel-body\">"; 

$conn_2 = new mysqli($db_servername, $db_username, $db_password, $db_dbname); 
if ($conn_2->connect_error) { } 

$sql_2 = "SELECT * FROM Home_Devices WHERE room='$room'"; 
$result_2 = $conn_2->query($sql_2); 

if ($result_2->num_rows > 0) { 
    while($row_room = $result_2->fetch_assoc()) { 
     echo " 
     <div class=\"media\"> 
     <div class=\"media-left\"> 
      <img src=\"/image/pictures/" .$row_room["type"].".png\" class=\"media-object\" style=\"width:60px\"> 
     </div> 
     <div class=\"media-body\"> 
      <h4 class=\"media-heading\"><a href=\"/dashboard/" .$row_room["sensor_id"]."\">" .$row_room["room"]." - " .$row_room["name"]."</a></h4> 
      <p>Sensor ID: " .$row_room["sensor_id"]."</p> 
     </div> 
     </div>"; 
    } 
} else { 
    echo "<p>No devices found, you can add devices <a href=\"/settings\">here</a>.</p>"; 
} 

     echo"</div> 
      </div> 
     </div>"; 
    } 

    echo " 
     </div> 
    </div> 
    </div> 
</div>"; 

} else { 
    echo "<p>No rooms found, you can add rooms <a href=\"/settings\">here</a>.</p>"; 
} 
$conn->close(); 
1

귀하의 결과 변수는 변수가

변경을 덮어 쓰기합니다.

$sql1 = "SELECT * FROM Home_Devices WHERE room='$room'"; 
$result1 = $conn->query($sql1); 

및 각 변수를 변경하십시오. 당신은 아마 선발을 위해 뭔가 잘못 ..하고있는

감사