Ankündigung

Einklappen
Keine Ankündigung bisher.

Suchergebnis unterschiedlich farbig darstellen

Einklappen

Neue Werbung 2019

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

  • Suchergebnis unterschiedlich farbig darstellen

    Hallo an Alle,

    ich möchte die einzelnen Zeilen des Ergebnisses einer Abfrage unterschiedlich farbig darstellen:

    Das gelingt mir auch, wenn ich den kompletten Inhalt einer Tabelle beim Seitenaufruf abfrage:

    id1.PNG

    Gehe ich aber in die Suche, passiert mir das:

    id2.PNG

    Logisch gesehen ist das ja auch richtig, aber wie kann ich die <tr>-Zeilen beeinflussen, dass sie auch die geraden und ungeraden Zeilen des Suchergebnisses richtig darstellen?
    Über die ID kann es ab diesem Moment doch nicht mehr gehen, aber ich habe gerade überhaupt keine Idee, wie ich das Abfrageergebnis sonst "manipulieren" kann.

    Habt ihr eine Idee ...
    VG, T.

    PHP-Code:

    // START DB Abfrage
    echo '<div>';

    $statement $pdo->prepare("SELECT * FROM users WHERE vorname LIKE :vorname AND nachname LIKE :nachname AND email LIKE :email");
    $statement->execute(array(
    'vorname' => "%$suchwort1%",
    'nachname' => "%$suchwort2%",
    'email' => "%$suchwort3%",
    ));

    echo
    '<table>';

    while(
    $row $statement->fetch())
    {

    if(
    $row['id'] % != 0)
    {
    echo
    '<tr bgcolor="red">';
    echo 
    '<td>';
    echo 
    $row['id'];
    echo 
    '</td>';

    echo 
    '<td>';
    echo 
    $row['vorname'];
    echo 
    '</td>';

    echo 
    '<td>';
    echo 
    $row['nachname'];
    echo 
    '</td>';

    echo 
    '<td>';
    echo 
    $row['email'];
    echo 
    '</td>';
    echo 
    '</tr>';
    }
    else
    {
    echo
    '<tr bgcolor = "blue" >';
    echo 
    '<td>';
    // usw ... 


  • #2
    CSS ist Dein Freund:

    https://www.w3schools.com/css/tryit...._table_striped

    Ansonsten verwendest du nicht die id für die Färbung sondern einen Zähler, den du selbst hochzählst.

    Übrigens: bgcolor ist ein veraltetes Attribut und im HTML5-Standard nicht mehr enthalten.

    Kommentar


    • #3
      SELECT * sollte man auch nicht verwenden.

      Und der Mischmasch aus Deutsch und Englisch (vorname, users,) ist furchtbar. Verwende beim Programmieren ausschließlich die englische Sprache.

      Kommentar


      • #4
        Da es noch nicht erwähnt wurde hier noch mal nachgereicht.
        Halte dich an das EVA Prinzip.
        Beachte den Kontextwechsel von PHP zu HTML, siehe auch https://wiki.selfhtml.org/wiki/Progr...Kontextwechsel

        Kommentar


        • #5
          Die programmiertechnische Lösung:

          [CSS]
          .tableLine
          {
          font-family: Verdana,Arial,sans-serif;

          }
          .row_0 {
          background-color: red;
          }
          .row_1 {
          background-color: blue;
          }
          [/CSS]

          PHP-Code:
          echo '<table class="tableLine">';

              
          $i 0;

              while (
          $row $statement->fetch())
              {

             echo 
          '<tr>';
                  echo 
          '<td class="row_' $i '">';
                  echo 
          $row['id'] . " &nbsp; &nbsp; " $row['vorname'] . " &nbsp; &nbsp; " $row['nachname'] . " &nbsp; &nbsp; " $row['email'] ;
                  echo 
          $i;
                  echo 
          '</td>';
              echo 
          '</tr>';
              
          $i++;
              }

          echo 
          '</table>'
          Ergebnis:

          id3.PNG
          VG, T.

          Kommentar


          • #6
            Weisst du eigentlich warum du eine Tabelle verwendest?
            Was du da zeigst ist totaler Murks.
            Alles in einer Zeile entspricht dann auch mehr einer Liste als einer Tabelle.

            &nbsp; ist fehl am Platz.
            Kontextwechsel wurde auch nicht berücksichtigt.

            Die Klassenbezeichnungen sind nicht aussagekräftig. row_0 ist nun mal auch in Zeile 3 vorhanden,

            Der Farbwechsel wir nicht programmiert sondern einfach mit nth-child auf das Element TR umgesetzt.

            <table class="tableLine">
            Eine Tabelle sollte eindeutig sein daher ist id hier vorzuziehen. Auch hier Eine Tabelle tablelline zu nennen ist ziemlich dumm, später weisst du nicht mehr was damit gemeint ist. Benenne doch die Tabelle nach dem was sie darstellt, Teilnehmer, loginUser oder so.

            Kommentar

            Lädt...
            X