2017-01-06 41 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); 

とそれぞれの変数を変更します。おそらく、手始めに...何か間違ったことをやっている

おかげ