Ankündigung

Einklappen
Keine Ankündigung bisher.

Tabelle Farbig

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Tabelle Farbig

    Guten Tag,

    Ich bin neu hier und hoffe ich habe das richtige Thread ausgesucht.
    Ich weis es gibt schon viele Themen die sich um das einfärben der Zeilen in einer Tabelle befassen, jedoch sehe ich da nicht ganz durch.

    Meine code um die Tabelle zu erstellen und zu befüllen lautet wie folgt:
    PHP-Code:
    echo"<table id=\"myTable\" class=\"tablesorter\" rules=\"all\">";

    echo
    "<thead>";
    echo
    "<tr><th>Name</th><th>Vorname</th><th>Festnetz</th><th>Handy</tr>";
    echo
    "</thead> ";
    echo
    "<tbody>";

    while((
    $row $erg->fetch_assoc()) !== Null){

    //$a=$row["id"];
    $b=$row["Name"];
    $c=$row["Vorname"];
    $d=$row["Festnetz"];
    $e=$row["Handy"];

    echo
    "<tr><tr><td>$b</td><td>$c</th><td>$d</td><td>$e</tr>";
    }
    echo
    "</tbody>";
    echo
    "</table>"
    Nun ich würde gerne jede 2 Zeile mit einer Farbe befüllen. jedoch habe ich das Problem das ich nicht durchblicke wo und was ich einfügen muss.

    Vielen dank für eure Hilfe.


  • #2
    Verwende doch eine Template-Engine wie Twig oder Smarty. Twig kann so etwas von Haus aus:
    Code:
    <tr class="{{ cycle(['odd', 'even'], loop.index0) }}"> [...] </tr>
    Bei dir geht das vom Prinzip so:
    PHP-Code:
    $i 0;
    while (
    false !== ($row $erg->fetch_assoc()) {
        if (++
    $i == 0) {
           
    $rowColor 'even';
        } else {
           
    $rowColor 'odd';
        }

    GitHub.com - ChrisAndChris - RowMapper und QueryBuilder für MySQL-Datenbanken

    Kommentar


    • #3
      Wenn du in der PHP-Syntax bleiben willst, kannst du auch PlatesPHP nehmen. Am besten via Composer installieren.
      Standards - Best Practices - AwesomePHP - Guideline für WebApps

      Kommentar


      • #4
        Das kannst du auch direkt mit CSS machen:

        http://www.w3schools.com/cssref/sel_nth-child.asp

        PHP-Code:
        td:nth-child(odd) {
            
        background#ff0000;
        }

        td:nth-child(even) {
            
        background#0000ff;

        Kommentar


        • #5
          Wenn ich es mit
          PHP-Code:
          td:nth-child(odd) { 
              
          background#ff0000; 


          td:nth-child(even) { 
              
          background#0000ff; 

          in der css datei erledige, wird es auf allen includes übernommen daher ungeschickt

          Kann man das änder?

          Kommentar


          • #6
            wird es auf allen includes übernommen
            Es gilt für jedes td

            Dann versuch mal eine eigene css-Klasse dafür, was ich im Kopf hab sollte das mit den Pseudoklassen/-elementen auch funktionieren.

            LG
            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
            PHP.de Wissenssammlung | Kein Support per PN

            Kommentar


            • #7
              Ich frage mich wo ich diese genau Laden muss:
              PHP-Code:
              <?php
              include('../db_connect.inc.php');
              $aktuelle_id $_GET['id']

                 
              $abfrage 'SELECT * FROM `verzeichniss` WHERE `id` = 17'
                  
              $ergebnis mysql_query($abfrage); 
                  while(
              $row mysql_fetch_object($ergebnis)) 

               
              ?>
              <html> 
              <body> 

              <form action="speichern.php" method="post"> 
                <table> 
                  <tr> 
                    <td>ID:</td><td><? echo "$aktuelle_id"; ?></td> 
                  </tr> 
                  <tr> 
                   <td>IDa:</td><td><input type="text" name="id" VALUE="<?php echo     
                      
              mysql_result($ergebnis0"id");?>"></td> 
                   </tr> 
                  <tr> 
                   <td>Name:</td><td><input type="text" name="Name" VALUE="<?php echo     
                      
              mysql_result($ergebnis0"Name");?>"></td> 
                   </tr> 
                   <tr> 
                     <td>Vorname:</td><td><input type="text" name="Vorname" size="14" VALUE="<?php echo  
                     
              mysql_result($ergebnis0"Vorname");?>"></td> 
                   </tr> 
                   <tr> 
                      <td>Festnetz:</td><td><input type="text" name="Festnetz" size="14" VALUE="<?php echo  
                      
              mysql_result($ergebnis0"Festnetz");?>"></td> 
                   </tr> 
                    <tr> 
                      <td>Handy:</td><td><input type="text" name="Handy" size="14" VALUE="<?php echo  
                      
              mysql_result($ergebnis0"Handy");?>"></td> 
                   </tr> 
                 </table> 
              <br> 
              <input type="submit" value="OK"> 
              </form> 

              </body> 
              </html>
              Dies ist ja mein kompletter Code
              muss ich dies oben hinsetzen:
              PHP-Code:
              <!doctype html>
              <
              html>
              <
              head>
              <
              meta charset="UTF-8">
              <
              link type="text/css" href="../site/source/1.css" rel="stylesheet" media="screen" />
              </
              head>
              </
              html

              Kommentar


              • #8
                Naja die css Klasse/Änderung in die .css Datei und die Zuweisung der css Klasse an der Stelle im HTML Code wo die Klasse angewandt wird, also zu dem td in der betreffenden Tabelle.

                Übrigens, schau mal deinen Code mal genau an und lasse den mal validieren, du wiederholst in der DB-Schleife zu viel... momentan nämlich dein gesamtes HTML. Lass den mal drüber laufen, staune und behebe. http://validator.w3.org/

                PHP-Code:
                <?php
                //...
                while($row mysql_fetch_object($ergebnis))  
                ?> 
                <html>  
                <body>  
                ...

                Und das sie mysql_ Erweiterung bald nicht mehr funktonieren wird sei hier auch noch erwähnt. http://php.net/manual/en/migration55.deprecated.php

                LG
                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #9
                  Zitat von hausl Beitrag anzeigen
                  Übrigens, schau mal deinen Code mal genau an und lasse den mal validieren, du wiederholst in der DB-Schleife zu viel... momentan nämlich dein gesamtes HTML. Lass den mal drüber laufen, staune und behebe.
                  Das Haut schon hin, die Schleife wiederholt den ganzen HTML Block und da der Query mit ID arbeitet hast immer ein Datensatz und damit einmal den HTML Code. Aber natürlich ist die Schleife an der Stelle totaler quatsch.

                  Zitat von schnibli Beitrag anzeigen
                  Wenn ich es mit
                  PHP-Code:
                  td:nth-child(odd) { 
                      
                  background#ff0000; 


                  td:nth-child(even) { 
                      
                  background#0000ff; 

                  in der css datei erledige, wird es auf allen includes übernommen daher ungeschickt

                  Kann man das änder?
                  Dann musst du das präziser Formulieren, deine Tabelle hat z.B. die Id tablesorter die kannst du dafür nutzen:
                  PHP-Code:
                  #tablesorter td:nth-child(odd) { 
                      
                  background#ff0000; 

                  #tablesorter td:nth-child(even) { 
                      
                  background#0000ff; 

                  Kommentar


                  • #10
                    ja erc, ging mir um das <html> <body> in der Schleife, das muss da raus. Habs oben im Quote des Codes eingegrenzt, dk für Hinweis.

                    Dann musst du das präziser Formulieren, deine Tabelle hat z.B. die Id tablesorter die kannst du dafür nutzen:
                    Wenn er zwei solcher Tabellen mit einer css id hat ist es dann aber nicht mehr korrekt, id darf es nur einmal geben. Ev besser eine css-Klasse verwenden?

                    LG
                    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                    PHP.de Wissenssammlung | Kein Support per PN

                    Kommentar

                    Lädt...
                    X