样式化我的表从SQL DB中获取

时间:2016-06-09 19:25:08

标签: php

我是PHP的新手,因此寻找一种简单快捷的解决方案 我应该在我的网站上显示一个SQL表,我只需要设置一个表行的样式(第二个:" Betrag")。据我所知,表行是在这里创建的:

 function beginChildren() { 
        echo "<tr>"; 

我不确定如何只设置其中一个而不是一起设置。我的代码甚至可以实现这一点吗? 谢谢你的帮助!

   <?php
echo "<table style='width: 60%; margin-left:auto; margin-right: auto;text-align: center;' >";
echo "<tr><th>Text</th><th>Betrag</th><th>Zeichen</th><th>Datum</th></tr>";

class TableRows extends RecursiveIteratorIterator { 
    function __construct($it) { 
        parent::__construct($it, self::LEAVES_ONLY); 
    }

    function current() {
        return "<td style='background-color: #F7F7F7;padding: 2px 5px 2px 5px; border:1px solid white;'>" . parent::current(). "</td>";
    }

    function beginChildren() { 
        echo "<tr>"; 
    } 

    function endChildren() { 
        echo "</tr>" . "\n";
    } 
} 

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "db";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $conn->prepare("SELECT Inhalt, Betrag, Zeichen, Datum FROM korrektur_user1 ORDER BY Inhalt DESC"); 
    $stmt->execute();

    // set the resulting array to associative
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 
    foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) { 
        echo $v;
    }
}
catch(PDOException $e) {
    echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
?>

3 个答案:

答案 0 :(得分:0)

查看id HTML属性。您可以将这些ID添加到表行中,并获得如下内容:

<tr id="qwerty">
    ...
</tr>
<tr id="betrag">
    ...
</tr>
<tr id="kljhlkh">
    ...
</tr>

然后,在您的CSS文件中(或在同一个HTML文件中,在<style>标记中):

tr#betrag {
    /*your styles here*/
}

这确保只有&#34; betrag&#34;行得到了样式。

或者,如果您需要设置第二行的样式而不管其内容如何,​​请使用nth child CSS选择器。

答案 1 :(得分:0)

根据您的评论,编辑您的PHP脚本:

function beginChildren() { 
        echo "<tr class='someClass'>"; 
    } 

在你的CSS中,

tr.someClass {
  /* Add your stylistic declaration here */
}

或者,不太建议,在PHP中执行所有操作

function beginChildren() { 
        echo "<tr style='background:#666666;'>"; 
    } 

答案 2 :(得分:0)

首先,您要在PHP文件中设置表格样式,这是不好的做法。 创建一个单独的CSS文件并从那里设置样式,例如使用td:nth-child(2) {background: #ff0000;}

或者做:

echo "<tr><th>Text</th>"; ?> 
<th style="STYLE HERE">Betrag</th>
<?php
echo "<th>Zeichen</th><th>Datum</th></tr>"; ?>