2015-08-04 3 views
1

Я пытался вставить таблицу html в php-код. Таким образом, эхо-данные (например, считывание воздуха) могут отображаться в таблице. Пожалуйста, помогите, спасибо :)Как разместить HTML-таблицу внутри PHP-кода

<?php 
$page = $_SERVER['PHP_SELF']; 
$sec = "100000000000000000"; 
header("Refresh: $sec; url=$page"); 
?> 


<?php 

    $server = "localhost"; 
    $user = "root"; 
    $password = ""; 
    $database = "sensors_hub"; 

// Create connection 
$conn = new mysqli($server, $user, $password, $database); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT air_reading, co2_reading, gas_reading, humid_reading, temp_reading FROM sensor_001 ORDER BY time DESC LIMIT 1"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     echo "<br> Air Reading: ". $row["air_reading"]. " Carbon Dioxide Reading: ". $row["co2_reading"]." Gas Reading: ". $row["gas_reading"]. " Humidity Reading: ". $row["humid_reading"]. " Temp Reading: ". $row["temp_reading"]. "<br>"; 

    } 
} else { 
    echo "0 results"; 
} 

$conn->close(); 
?> 
+1

html - текст. вы выводите его так, как будто бы вы выводили любой ДРУГОЙ текст. –

ответ

0
  • Начните таблицу выше цикла while()
  • Добавить строку таблицы в while() цикле
  • Конец таблицы после цикла while()
echo "<table> 
     <tr> 
      <th>Air Reading</th> 
      <th>Carbon Dioxide Reading</th> 
      <th>Gas Reading</th> 
      <th>Humidity Reading</th> 
      <th>Temp Reading</th> 
     </tr>"; 
if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     echo "<tr> 
       <td>". $row["air_reading"]. "</td> 
       <td>". $row["co2_reading"]."</td> 
       <td> ". $row["gas_reading"]. "</td> 
       <td>". $row["humid_reading"]. "</td> 
       <td>". $row["temp_reading"]. "</td> 
       </tr>"; 
    } 
} else { 
    echo "<tr><td colspan='5'>0 results</td></tr>"; 
} 
echo "</table>"; 
+0

omg Большое вам спасибо за вашу помощь! :-) ценить это! –

1
echo "<table>"; 
echo "<tr>"; 
    echo "<td>Air Reading:</td>"; 
    echo "<td>Carbon Dioxide Reading:</td>"; 
    echo "<td>Gas Reading:</td>"; 
    echo "<td>Humidity Reading:</td>"; 
    echo "<td>Temp Reading:</td>"; 
echo "</tr>"; 
if ($result->num_rows > 0) { 
while($row = $result->fetch_assoc()) { 
    echo "<tr>"; 
    echo "<td> ". $row["air_reading"]. "</td>"; 
    echo "<td> ". $row["co2_reading"]. "</td>"; 
    echo "<td> ". $row["gas_reading"]. "</td>"; 
    echo "<td> ". $row["humid_reading"]. "</td>"; 
    echo "<td> ". $row["temp_reading"]. "</td>"; 
    } 
    echo "</tr>"; 
} else { 
    echo "0 results"; 
} 

echo "</table>"; 

Это, скорее всего, самый письменный, но самый легкий для понимания.

Если вы хотите сделать его умнее, чтобы это так:

?><table> 
    <tr> 
    <td>Air Reading:</td> 
    <td>Carbon Dioxide Reading:</td> 
    <td>Gas Reading:</td> 
    <td>Humidity Reading:</td> 
    <td>Temp Reading:</td> 
</tr> 
<? 
if ($result->num_rows > 0) { 
    while($row = $result->fetch_assoc()) { 
     ?> 
     <tr> 
      <td><?=$row["air_reading"]?></td> 
      <td><?=$row["co2_reading"]?></td> 
      <td><?=$row["gas_reading"]?></td> 
      <td><?=$row["humid_reading"]?></td> 
      <td><?=$row["temp_reading"]?></td> 

     </tr> 
     <? 
    } 
} else { 
    ?>0 results<? 
} 
?> 

</table> 
+0

Сделай это умнее! Вы должны удалить этот первый фрагмент - не научить людей писать краткий код - бонусные баллы, если вы упомянули об этом с помощью «include» –

+1

В обоих этих примерах вы никогда не создаете новые '' s для каждого ряд. – nkorth

+0

@nkorth, о да, ты прав. Я это испортил. дайте мне минутку, чтобы исправить это. – DocRattie

0
if ($result->num_rows > 0) { 
    ?> 
    <table> 
    <tr> 
     <th>Air Reading<th> 
     <th>Carbon Dioxide Reading<th> 
     <th>Gas Reading<th> 
     <th>Humidity Reading<th> 
     <th>Temp Reading<th> 
    </tr> 
    <?PHP while($row = $result->fetch_assoc()) { ?> 
    <tr> 
     <td><?php= $row["air_reading"] ?></td> 
     <td><?php= $row["co2_reading"] ?></td> 
     <td><?php= $row["gas_reading"] ?></td> 
     <td><?php= $row["humid_reading"] ?></td> 
     <td><?php= $row["temp_reading"] ?></td> 
    </tr> 
    <?PHP } ?> 
} else { 
    echo "0 results"; 
} 
0

Вам нужно создать таблицу выше время цикла, и закончить его после того, как он finishes.My ответ похож на HD, но я считаю этот способ является более полезным:

$table = "<table>"; 
$table .= "<tr><td>Row 1</td></tr>"; 

$i = 0; 

if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
       $table .= "<tr><td>Col 1</td></tr>"; 
    } 

} 

$table .= "</table>"; 

echo $table; 

Поэтому я предпочитаю этот способ является то, что она делает ваш HTML код легче читать, так как теперь вы можете повторить таблицу в HTML-коде, а не делать весь PHP cript в середине HTML.