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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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??
    Last edited by Pissameise; 27-07-2010, 08:24.

  • #2
    Originally posted by Pissameise View Post
    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. ); 
    Last edited by wono; 27-07-2010, 08:57.

    Comment


    • #3
      wo genau soll dieser array stehen und wie änder ich mit php die zeilenfarbe?
      Last edited by Pissameise; 27-07-2010, 09:15.

      Comment


      • #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>';

        Last edited by eagle275; 27-07-2010, 09:59.
        [font=Verdana]
        Wer LESEN kann, ist klar im Vorteil!
        [/font]

        Comment


        • #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.

          Comment


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

            Comment


            • #7
              Originally posted by Pissameise View Post
              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.

              Comment


              • #8
                klappt alles

                Comment


                • #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.

                  Comment


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

                    Comment


                    • #11
                      Originally posted by Pissameise View Post
                      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

                      Comment


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

                        Comment


                        • #13
                          Originally posted by Pissameise View Post
                          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

                          Comment

                          Working...