2016-06-09 5 views
0

Ich bin sehr neu in PHP und damit auf der Suche nach einer einfachen und schnellen Lösung.
Eine SQL-Tabelle sollte auf meiner Website angezeigt werden und ich muss nur einen der Tabellenzeilen (der zweite: "Bericht"). Soweit ich verstanden, wird die Tabellenzeile hier erstellt:Styling meiner Tabelle aus SQL DB

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

Ich bin nicht sicher, obwohl, wie nur einer von ihnen, um Stil anstatt aller zusammen. Ist das mit meinem Code überhaupt möglich? Danke für Ihre Hilfe!

<?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>"; 
?> 
+0

von „Stil“ haben Sie CSS auf Ihre HTML meine Anwendung? Bitte sei spezifischer. –

+0

Ja genau. Genau wie wo die '' erstellt wird, möchte ich CSS-Stile zu der '' hinzufügen, aber ** nur zu einer von ihnen **. – sojutyp

+0

Sie können javascript/jquery verwenden, um einer der Tabellenzeilen Stile hinzuzufügen. –

Antwort

0

Zuerst stylen Sie die Tabelle in Ihrer PHP-Datei, was eine schlechte Übung ist. Erstellen eine separate CSS-Datei und Stil von dort zum Beispiel mit td:nth-child(2) {background: #ff0000;}

Oder:

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

Ich werde in diese Lösung 'td: nth-Kind (2) {Hintergrund: # ff0000;}', nie diese Methode zuvor verwendet. Die zweite Lösung formatiert nur den Kopf der Zeile, das ist schön, aber nicht genau das, was ich suche. Vielen Dank! – sojutyp

0

Auschecken id HTML-Attribut. Sie können diese IDs in Ihre Tabellenzeilen hinzufügen und so etwas wie erhalten:

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

Dann in Ihrer CSS-Datei (oder auch nur in der gleichen HTML-Datei, in einem <style> Tag):

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

Diese stellt sicher, dass nur "betrag" -Reihen gestylt werden.

Wenn Sie die zweite Zeile unabhängig vom Inhalt formatieren müssen, verwenden Sie alternativ den CSS-Selektor nth child.

0

Wie pro Ihren Kommentar oben, bearbeiten Sie Ihre PHP-Skript:

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

In Ihrem CSS,

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

Oder und weniger empfohlen, tun alles in Ihrer PHP

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

Danke für Ihre Eingabe. Wenn ich die Klasse zu dieser Zeile hinzufügen: echo "; ', würde es nicht für alle Tabellenzeilen gelten? – sojutyp