簡體   English   中英

從 php 循環中對數據庫的樣式 output

[英]Styling output of database from php loop

我正在嘗試顯示數據庫中的數據,對我來說重要的是這個 output 放置在網站的不同側面。 我使用 php 連接到數據庫,並使用 ajax jquery 刷新數據,因為每 20 秒值更改一次。

我嘗試過了

echo <div styles='position: absolute; top: 0px' class='text'>{$row['id']}</div>

在 foreach 循環中,但是當我這樣做時,我的所有 6 個 id 都堆疊在一起。

使<div>外循環也不成功。 我想我的問題是從數據庫中讀取數據,因為我一次讀取所有數據,但除了寫入 6 個連接文件以僅收集我想要顯示的一個值然后對其進行樣式設置之外,我不知道任何其他方法可以做到這一點,但是我覺得有更聰明的方法可以做到這一點。

這是我的代碼。 只想說這是我第一次接觸php。

<?php
$hostname = "someinfo";
$username = "someinfo";
$password = "someinfo";
$db = "someinfo";
$dbconnect = mysqli_connect($hostname,$username, $password,$db) or die("cant");
if ($dbconnect->connect_error) {
      die("Database connection failed: " . $dbconnect->connect_error);
}
$sensor_names = array();
$query2 = mysqli_query($dbconnect,"show tables");
while($row2 = mysqli_fetch_array($query2)){ 
    if($row2[0] == 'sensors' or $row2[0] == 'measurments'){
            break;
    }
    else{
            array_push($sensor_names,$row2[0]);
    }
}

$query = mysqli_query($dbconnect, "select s.id, s.sensor_name, max(dev.id), dev.temprature, dev.date  from sensors s, `{$sensor_names[0]}` dev where s.id=dev.sensor_id gro
up by s.id, s.sensor_name order by s.id asc");
while($row = mysqli_fetch_array($query)){ //i konw this is ugly but this is working placeholder
foreach($sensor_names as $sn){

    $query = mysqli_query($dbconnect, "select s.id, s.sensor_name, dev.temprature, dev.date from sensors s, `{$sn}` dev where s.id=dev.sensor_id order by dev.id desc limit 1");
    $row = mysqli_fetch_array($query);
    echo "
    {$row['id']}
    {$row['sensor_name']}
    {$row['temprature']}
    {$row['date']}
    <br>";

}
}
?>

這是一個很久沒有接觸過 PHP 的人的即興表演,所以請注意重大錯誤。 但基本思想是這樣的:在變量中構建代碼,完成后,回顯整個變量。 使添加所需的結構/格式變得更加容易。 請注意,您還可以將樣式標記與該代碼一起粘貼,並將樣式與“表格”一起模糊掉(個人而言,我不會使用表格進行樣式設置,這只是為了演示)

注意:我沒有設置 output 的樣式,以便將數據放在頁面的兩側 - 我留給你做。 這是基本的 HTML - div,styles,可能是 css 網格或 Z7F3D565C67F89F27A331Z03D。 關鍵是在字符串變量中創建您的 CSS/HTML/PHP 混搭,並在完成后創建 output 整個事情。

$out = '<style>.cell_id{font-weight:bold;}</style>';
$out .= '<table><tr><th>Label 1</th><th>Label 2</th><th>Etc</th></tr>'; //<=== ADDED!
while($row = mysqli_fetch_array($query)){
   foreach($sensor_names as $sn){
     $query = mysqli_query($dbconnect, etc. etc. etc.);
     $row = mysqli_fetch_array($query);
     $out .= "
     <tr>
       <td class='cell_id'>{$row['id']}</td>
       <td>{$row['sensor_name']}</td>
       <td>{$row['temprature']}</td>
       <td>{$row['date']}</td>
     </tr>";
   }
}
echo $out;

好的,我想我明白了。 Cssyphus 的回答讓我開始思考,我寫了類似array_push($data, $row)的東西,而$data是保存我需要的所有數據的二維數組,現在我可以輕松地設置它的樣式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM