tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
10
ZUGRIFFE
1544
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Memfis Memfis ist offline Mitglied Silber
    Registriert seit
    Jul 2003
    Beiträge
    99
    Suchfunktion findet (seltsamerweise) nichts zu dem Thema.

    Ich habe eine mehr oder weniger große Tabelle geschaffen und möchte nun, dass mir jede zweite Zeile in einer anderen Farbe dargestellt wird. Die Ausgabe sieht wie folgt aus, falls das von Bedeutung ist:
    PHP-Code:
    <?php
    ... DatenbankverbindungAuslesebefehl ...
    ?>
    <table>
    <tr><td>Spaltenüberschrift 1</td><td>Spaltenüberschrift 2</td><td>Spaltenüberschrift 3</td><td>Spaltenüberschrift 4</td></tr>
    <?php
    while ($gefunden mysql_fetch_row($ergebnis)){
    ?>
    <tr><td><?php echo $gefunden[1?></td><td><?php echo $gefunden[2?></td><td><?php echo $gefunden[3?></td><td><?php echo $gefunden[4]?></td></tr>
    <?php
    }
    ?>
    </table>
    Hoffe ich habe den Quelltext jetzt nicht zu sehr gekürzt. Habe Formatierungskrempel (font, size, etc.) entfernt, da er hier ohne Bedeutung ist und die Übersicht so besser ist *hoff*.
    Geändert von Memfis (18.07.05 um 12:04 Uhr)
     

  2. #2
    Avatar von dsturm
    dsturm dsturm ist offline Mitglied Gold
    Registriert seit
    May 2003
    Beiträge
    222
    Also, ich hatte das so gelöst:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    for ($i=1; $i<= mysql_num_rows($query); $i++) {
         
         $row = mysql_fetch_array($query);
         if ($i % 2 != 0) { $zeile='ungerade'; } //per %-Operator auf Rest nach Division überprüfen
         else { $zeile='gerade'; }
            
         echo ''; //Zeilenausgabe
            
         if ($i < mysql_num_rows($query)) { echo ''; } //Falls nicht letzter Eintrag Zwischenzeile (Spacer) setzen
    }
     

  3. #3
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Oder auch:
    PHP-Code:
    <?php

        $i 
    0;
        while( 
    $gefunden mysql_fetch_row($ergebnis) ) {

            echo 
    sprintf(
                
    '<tr class="%s"><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>',
                    (
    $i++%2==0) ? 'gerade' 'ungerade',
                    
    $gefunden[1],
                    
    $gefunden[2],
                    
    $gefunden[3],
                    
    $gefunden[4]
                );

        }

    ?>
     
    Markus Wulftange

  4. #4
    Memfis Memfis ist offline Mitglied Silber
    Registriert seit
    Jul 2003
    Beiträge
    99
    Öhm, ich habe versucht dein Script nachzuvollziehen, stolperte aber über folgende Dinge:

    1) Wo ist die Farbdefinition, wo steht, welche Farbe gesetzt werden soll, wenn was der Fall ist?
    2) Diese Zeile ist für mich ein ganz großes Fragezeichen: '<tr class="%s"><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>',
    3) Was 'gerade' : 'ungerade', soll, überlege ich auch noch, weil das nirgends sonnst auftaucht, also nirgends definiert wurde.

    Gruß Memfis
    Geändert von Memfis (19.07.05 um 11:20 Uhr)
     

  5. #5
    Paraman Paraman ist offline Rookie
    Registriert seit
    Feb 2003
    Beiträge
    9
    1) Das steht nirgendwo.
    Gumbo hat classes benutzt, nämlich die class "gerade" für die eine Farbe und "ungerade" für die andere. Diese definierst du in deiner CSS-Datei oder im Head-Bereich der Seite.

    2) Diese Zeile kannst du als Template für die Ausgabe sehen. Jedes "%s" wird später durch einen Wert ersetzt, der ebenso in der Funktion sprintf angegeben ist.
    Da er fünf "%s" hat, braucht er auch fünf Werte:
    ($i++%2==0) ? 'gerade' : 'ungerade'
    $gefunden[1]
    $gefunden[2]
    $gefunden[3]
    $gefunden[4]

    In der ersten Zeile wird geprüft, ob "$i", also die Zahl des aktuellen Durchlaufs, modulo 2 = 0 ist.
    Die anderen Zeilen sind einfach nur Daten aus der Datenbank und zwar die Daten mit den Keys 1-4.

    Cu Paraman
     

  6. #6
    Memfis Memfis ist offline Mitglied Silber
    Registriert seit
    Jul 2003
    Beiträge
    99
    Danke für die Erklärung. Geht das aber auch einfacher. CSS kann ich (noch) nicht und ich mache eigentlich alles gerne in PHP und HTML.
     

  7. #7
    Paraman Paraman ist offline Rookie
    Registriert seit
    Feb 2003
    Beiträge
    9
    PHP-Code:
    <?php

        $i 
    0;
        while( 
    $gefunden mysql_fetch_row($ergebnis) ) {

            echo 
    sprintf(
                
    '<tr style="background-color: %s"><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>',
                    (
    $i++%2==0) ? '#AAAAAA' '#CCCCCC',
                    
    $gefunden[1],
                    
    $gefunden[2],
                    
    $gefunden[3],
                    
    $gefunden[4]
                );

        }

    ?>
    Cu Paraman
     

  8. #8
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Geht das aber auch einfacher. CSS kann ich (noch) nicht und ich mache eigentlich alles gerne in PHP und HTML.
    CSS ist nun wirklich nicht schwer. Wenn du dich erst einmal etwas eingearbeitet hast, wirst du merken, welches Potenzial hinter CSS steckt.
    Übrigens verwendet auch Paramans Vorschlag CSS.
     
    Markus Wulftange

  9. #9
    Memfis Memfis ist offline Mitglied Silber
    Registriert seit
    Jul 2003
    Beiträge
    99
    Danke. Funktioniert. Hab jetzt aber trotzdem noch eine Frage *sorry*

    Wofür steht "%s"?
    Geändert von Memfis (21.07.05 um 12:01 Uhr)
     

  10. #10
    Paraman Paraman ist offline Rookie
    Registriert seit
    Feb 2003
    Beiträge
    9
    %s bedeutet, dass diese stelle als ein string angesehen wird

    Cu Paraman
     

  11. #11
    Memfis Memfis ist offline Mitglied Silber
    Registriert seit
    Jul 2003
    Beiträge
    99
    Danke
     

Ähnliche Themen

  1. Antworten: 10
    Letzter Beitrag: 12.08.09, 13:35
  2. Jede n. zeile einer Tabelle / einer Ergebnismenge auslesen
    Von janw im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 09.08.05, 11:53
  3. Antworten: 2
    Letzter Beitrag: 21.02.05, 10:13
  4. Antworten: 2
    Letzter Beitrag: 06.04.04, 12:43
  5. Nur zweite Zeile einer Textdatei auslesen
    Von Moritz123 im Forum PHP
    Antworten: 5
    Letzter Beitrag: 29.07.03, 17:58