mysql tabelle mit php ausgeben und zeilenfarbe je nach inhalt ändern

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

  • mysql tabelle mit php ausgeben und zeilenfarbe je nach inhalt ändern

    hey,
    ich mache eine mitgliederliste für eine gilden seite mit mysql und php

    die mysql felder sehen so aus:
    ID | Name | Klasse | Rang | Level

    Das Ausgeben als Tabelle klappt schon, aber ich möchte dass jede Klasse ihre eigene Zeilenfarbe hat. z.B. der Krieger rot^^

    Hier ist nur die Ausgabe

    PHP-Code:
    <?php 


    $mysqlhost
    ="xxx";  

    $mysqluser="xxx";  

    $mysqlpwd="xxx";  

    $mysqldb="xxx";  


    $connection=mysql_connect($mysqlhost$mysqluser$mysqlpwd) or die 

    (
    "Verbindungsversuch fehlgeschlagen"); 

      

    mysql_select_db($mysqldb$connection) or die("Konnte die Datenbank nicht 

    waehlen."
    ); 

      

    $sql "SELECT ID, Name, Klasse, Rang, Level FROM mitglieder"

      

    $adressen_query mysql_query($sql) or die("Anfrage nicht erfolgreich"); 

      

    $anzahl mysql_num_rows($adressen_query); 

    echo 
    "Mitgliederzahl: $anzahl"

    ?> 
     
      

    <table cellpadding="1" cellspacing="3" border="1" class="style1"> 

    <tr> 

    <td><strong>ID</strong></td> 

    <td><strong>Name</strong></td> 

    <td><strong>Klasse</strong></td> 

    <td><strong>Rang</strong></td> 

    <td><strong>Level</strong></td> 


    </tr> 

      

    <?php 

    while ($adr mysql_fetch_array($adressen_query)){ 

        
    ?> 
     
    <tr> 

    <td><?=$adr['ID']?></td> 

    <td><?=$adr['Name']?></td> 

    <td><?=$adr['Klasse']?></td> 

    <td><?=$adr['Rang']?></td> 

    <td><?=$adr['Level']?></td> 

    </tr> 

    <?php 



    ?> 
     
      

    </table>
    Wie kann ich meine Idee in die Tat umsetzen??
    Zuletzt geändert von Pissameise; 27.07.2010, 09:24.

  • #2
    Zitat von Pissameise Beitrag anzeigen
    hey,
    Das Ausgeben als Tabelle klappt schon, aber ich möchte dass jede Klasse ihre eigene Zeilenfarbe hat. z.B. der Krieger rot^^
    sollen es beliebige Farben sein? oder was hast du dir darunter vorgestellt?

    Wenn jede klasse immer die gleiche farbe haben soll dann könntest du ein Array definieren als KEY die Klasse und als value dann jeweils die farbe.

    PHP-Code:
    $arrFarben = array( 'Krieger' => 'rot'usw. ); 
    Zuletzt geändert von wono; 27.07.2010, 09:57.

    Kommentar


    • #3
      wo genau soll dieser array stehen und wie änder ich mit php die zeilenfarbe?
      Zuletzt geändert von Pissameise; 27.07.2010, 10:15.

      Kommentar


      • #4
        naa... nicht mit PHP selbst änderst du die Zeichenfarbe ...

        du lässt über php einfach den passenden HTML-Code generieren ...

        PHP-Code:
        for ($i=0;$i<count($bkenn);$i++) {
             if (
        $i == 0// 0...2...4...6...-> Grauer Hintergrund
                   
        $aus.='<tr class="grey">';
             else                
        // 1...3...5...7...-> Weißer Hintergrund
                   
        $aus.='<tr class="white">';
        ......
        // eigentliche Ausgabe 
        etwa in diesem Code -Schnipsel wird abwechselnd den TabellenZeilen jeweils ein anderer CS-Style zugewiesen, der dann in meinem Fall unterschiedliche background-color Eigenschaften hat ..

        genau so könnte es natürlich mit color: #xxyyzz; auch die TextFarbe anstatt der Hintergrundfarbe ändern ... oder den Text-Style oder .. oder ...
        und natürlich kann man das auch auf <p> Absätze anwenden, wenn keine Tabelle da ist ^^

        alternativ definierst du dir halt die entsprechenden CSS-Styles für td ...

        Code:
        <STYLE type="text/css">
            .tablekrieger {
                font-size: 12px;
                font-family: Helvetica, Arial, sans-serif;
                line-height : 19px;
                font-weight: bold;
                color: #FF0000;
            }
            .tablemagier {
                font-size: 12px;
                font-family: Helvetica, Arial, sans-serif;
                line-height : 19px;
                font-weight: bold;
                color: #0000FF;
            }
           .tableschuetze {
                font-size: 12px;
                font-family: Helvetica, Arial, sans-serif;
                line-height : 19px;
                font-weight: bold;
                color: #00FF00;
            }
        später dann in deiner while-Schleife

        PHP-Code:
        while ($adr mysql_fetch_array($adressen_query)){ 
           switch (
        $adr['Klasse']) {
              case 
        'Krieger' :
                 
        $cssfarbe='tablekrieger';
                 break;
              case 
        'Magier' :
                 
        $cssfarbe='tablemagier';
                 break;
              case 
        'Schuetze' 
                 
        $cssfarbe='tableschuete';
                 break;
           } 
        //alternativ ... $cssfarbe='table'.strtolower($adr['Klasse']);
           
        echo '<tr>';
           echo 
        'td class="'.$cssfarbe'">'.$adr['ID'].'</td>';
           echo 
        'td class="'.$cssfarbe'">'.$adr['Name'].'</td>';
           echo 
        'td class="'.$cssfarbe'">'.$adr['Klasse'].'</td>';
           echo 
        'td class="'.$cssfarbe'">'.$adr['Rang'].'</td>';
           echo 
        'td class="'.$cssfarbe'">'.$adr['Level'].'</td>';
           echo 
        '</tr>';

        Zuletzt geändert von eagle275; 27.07.2010, 10:59.
        [font=Verdana]
        Wer LESEN kann, ist klar im Vorteil!
        [/font]

        Kommentar


        • #5
          PHP ist dabei nur die Abfrage, das ändern der Farbe machst du über CSS oder das style-attribut.

          PHP-Code:
          <?php
           $farb_arr 
          = array(
            
          "Krieger" => "#ff0000"
            
          ....);
          ?>

          while ($adr ...)
          ...
          <td style="background-color: <?php echo $farb_arr[$adr['Klasse']]; ?>">
          Die Farben müssen dann einfach normale CSS-Farbwerte sein und fertig.
          This is what happens when an unstoppable force meets an immovable object.

          Kommentar


          • #6
            achsoo .... klingt logisch - versuch ich mal

            Kommentar


            • #7
              Zitat von Pissameise Beitrag anzeigen
              wo genau soll dieser array stehen und wie änder ich mit php die zeilenfarbe?
              Den definierst du einfach am Anfang deiner Datei z.B
              PHP-Code:
              $arrFarben = array( 'Krieger' => 'rot''Spieler' => 'blau'); 
              und dann kannst du in der

              PHP-Code:

              <?php 

              while ($adr mysql_fetch_array($adressen_query)){ 

                  
              ?> 
               
              <tr style="backgound-color:<?echo $arrFarben[$adr['Klasse']] ?>;" > 

              <td><?=$adr['ID']?></td> 

              <td><?=$adr['Name']?></td> 

              <td><?=$adr['Klasse']?></td> 

              <td><?=$adr['Rang']?></td> 

              <td><?=$adr['Level']?></td> 

              </tr> 

              <?php

              Ist jetzt nicht getestet aber sollte klappen TIPP: Legt dir das Farben Array an und lass es dir mal ausgeben.

              Kommentar


              • #8
                klappt alles

                Kommentar


                • #9
                  mySQL Tabelle ausgeben und Tabellendarstellung je nach Inhalt anpassen - php.de
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Jo, das zeigt, dass dieses Forum lösungsorienterter als das von php.de ist...

                    Kommentar


                    • #11
                      Zitat von Pissameise Beitrag anzeigen
                      Jo, das zeigt, dass dieses Forum lösungsorienterter als das von php.de ist...
                      Unterlasse es gefälligst so einen Unsinn zu schreiben und lies vorher mal Forenregeln. Auch da wollten dir die Leute helfen, nur nicht die Lösung einfach mal so vor die Füße knallen. Eine Entschuldigung für deine Aussage wäre denke ich angebracht, denn auch in dem Forum hier sind viele von php.de unterwegs, unter anderem ich. Und hättest du vieleicht mal ein klein wenig Zeit investiert und gelesen oder Google bemüht, dann wärst du sicher selber auf die Lösung gekommen.
                      Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                      http://www.lit-web.de

                      Kommentar


                      • #12
                        Ok... is passiert kann man jetzt nichts mehr dran ändern...
                        Wird nicht mehr vorkommen

                        Kommentar


                        • #13
                          Zitat von Pissameise Beitrag anzeigen
                          Ok... is passiert kann man jetzt nichts mehr dran ändern...
                          Wird nicht mehr vorkommen
                          Aber natürlich du kannst hier deinen Post #10 ändern. Dazu gibts ändern Button
                          Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                          http://www.lit-web.de

                          Kommentar

                          Lädt...
                          X