繁体   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