• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Zeilenwechsel in Tabelle - bei PHP - mit css-Style

Aber es scheint als wenn $class immer = Zeile1 ist.

Und so frage ich mich wo ich

PHP:
              for ($i = 1; $i <= 2; $i++) :  ;   // modulus fr IE

                                      $class = '';     // Definiton class für Zeilenwechsel IE
                                      if ($i === 1) {
                                          $class = 'fantasie-zeile1';
                                      } else if ($i % 2 === 0) {
                                          $class = 'fantasie-gerade';
                                      } else {
                                          $class = 'fantasie-ungerade';
                                      };

              echo $class;       // zur Prüfung ob Zeile 1, gerade, ungerade
einbauen muss.

bisher hatte ich es nach dem <table> und vor dem while. (Zeile 35/36)
dann habe ich es nach dem while und dem folgenden if probiert. (Zeile 39)
doch auch die dritte denkbare position nach dem if und vor dem for (Zeile 43 - aktuell)


Zeilenwechsel.jpg
 
Ich habe das gemacht doch irgendwas habe ich wohl falsch verstanden.
Ich habe for gelöscht (bzw. kommentiert nach dem es nicht klappte)
Ich habe den Zähler am ende eingefügt
Und weil die Zeile immer den wert 2 zu haben scheint?? eine extra Zeile mit i = 1 am Anfang eingefügt.
Doch i scheint immer noch 2 zu sein denn $class = zeile-gerade

PHP:
<?php $i == 1 ?>
<?php
$ergebnis = mysql_query("SELECT * FROM Story WHERE Storyname REGEXP '^[" . mysql_real_escape_string($_GET['Inhalt']) . "]' ORDER BY Storyname ASC ") OR die("Error: $abfrage <br>".mysql_error());
echo '<table class="fantasie-uebersicht">';

                   //    for ($i = 1; $i <= 2; $i++) :  ;   // modulus fr IE


                                      $class = '';     // Definiton class für Zeilenwechsel IE
                                      if ($i == 1) {
                                          $class = 'fantasie-zeile1';
                                      } else if ($i % 2 === 0) {
                                          $class = 'fantasie-gerade';
                                      } else {
                                          $class = 'fantasie-ungerade';
                                      };



while($row = mysql_fetch_object($ergebnis))
{



        if ($row->Veroeffentlicht == "1") // Veroeffentlicht ja/ ohne Wert = (überspringen)
        {



              echo  '<tr class="'.$class.'">',
              '<td class="fantasie-uebersicht">',
              '<p class="glowtext-story">',
              $row->Storyname;

              if ($row->FSK18 == "")    // FSK18 ja/ ohen Wert = (ohne Bild)
              {
              echo ' <img src="../Images/fsk18_logo.gif" alt="Die vollständige Fantasie ist aktuell als FSK18 eingestufft" border="1" width="58" height="17"><p />';
              }
              else
              {
              echo '<p />';
              }

              if ($row->Zweitname != "")   // Brief/Telefon oder ohne Wert
              {
              echo $row->Zweitname, "<br />";
              };

        echo '<span class="nummer"> (', $row->Storynummer, ') </span>', '<span class="copyright">©', $row->Erstellt;

        if ($row->Ueberarbeitet != "")   // Überarbeitet oder ohne Wert
        {
        echo '/', $row->Ueberarbeitet, '</span><br /><br />';
        }
        else
        {
        echo '</span><br /><br />';
        };

        echo '<span class="untertitel">', $row->Beschreibung; '</td> </tr>';

        };  // ende if (veroeffentlicht)
                    $i++;     //    endfor;
};   // ende while

echo '</table>';

?>
 
Zuletzt bearbeitet:
Wieso sollte eigentlich der Modus also die Zeile mit for raus?
Und wenn die Zeilen nicht doppelt gewesen währen hätte es dann eine Möglichkeit gegeben den MaxWert (z.B. die 20) als Varialbel zu setzen?
Denn je nach dem welchen wert "Inhalt" hätte wären es unterschiedlich viele Zeilen.

Zeilenwechsel ergebniss.jpg

In diesem Beispiel wird deutlich wo mein Problem mit den Zeilen bei der ursprünglichen Version war.
Der Wechsel an sich schien zu klappen. Aber da ist eben die Dopplung und Reihenfolge 1,1 2,2,
und nicht 1,2
 
Zuletzt bearbeitet:
PHP:
                                      $class = '';     // Definiton class für Zeilenwechsel IE
                                      if ($i == 1) {
                                          $class = 'fantasie-zeile1';
                                      } else if ($i % 2 === 0) {
                                          $class = 'fantasie-gerade';
                                      } else {
                                          $class = 'fantasie-ungerade';
                                      };

Dieser Block muss einmal pro Schleifendurchlauf ausgeführt werden, muss also logischerweise innerhalb der while-Schleife stehen und nicht davor.

Wieso sollte eigentlich der Modus also die Zeile mit for raus?
Und wenn die Zeilen nicht doppelt gewesen währen hätte es dann eine Möglichkeit gegeben den MaxWert (z.B. die 20) als Varialbel zu setzen?
Denn je nach dem welchen wert "Inhalt" hätte wären es unterschiedlich viele Zeilen.

Meine for-Schleife ist das, was bei dir die while-Schleife ist. Ich musste für die Demo eben irgendeine Anzahl an Zeilen erfinden, weil man sonst nichts gesehen hätte… Ich hatte keine Daten, über die ich eine while-Schleife laufen lassen konnte.

Es könnte nicht schaden, wenn du dir noch mal ein paar Einführungssachen ansiehst.

- Quellensammlung
 
Zurück
Oben