Background color van 1 record wijzigen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wesley Bekaert

Wesley Bekaert

14/11/2012 14:06:18
Quote Anchor link
Op deze pagina: http://www.wesleybekaert.be/nieuwdamberd/stand.php haal ik een klassement op uit mijn database.

Ik zou de record met onze ploeg (FC Damberd Bavikhove) in een andere backgroundcolor willen steken. Zodat de bezoeker direct ziet op welke plaats we staan.

Hoe codeer ik dit?

Dank bij voorbaat
 
PHP hulp

PHP hulp

22/11/2024 07:08:12
 
Erwin van Hoof

Erwin van Hoof

14/11/2012 14:33:59
Quote Anchor link
Indien je de code kan posten die de tabel opbouwt kan ik een beter antwoord geven maar het dit zou een oplossing kunnen zijn:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php

// kleur die voor als standaard word gebruik
$standaard_bgcolor = '#666666';

// afwijkende kleur voor FC Damberd Bavikhove
$highlight_bgcolor = '#eeeeee';

// in je pagina zal een foreach loop zitten die alle rijen doorloopt.
foreach {$rijen as $rij}
{

    
    $bgcolor = ($rij['clubnaam'] == 'FC Damberd Bavikhove') ? $highlight_bgcolor : $standaard_bgcolor ;

    // code die tabel opbouwt
    ....

    echo '<tr bgcolor="'. $bgcolor .'">';

    // code die tabel opbouwt
    ....

}


?>
 
Ozzie PHP

Ozzie PHP

14/11/2012 14:36:55
Quote Anchor link
Wat heb je zelf al geprobeerd? Zonder code is het een beetje lastig, maar ik neem aan dat je ergens een loop (een while lus of een foreach loop) hebt waarin je de gegevens uit de database doorloopt. Hierin zet je dan zoiets als:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$id
= $row['team'] == 'FC Damberd Bavikhove' ? ' id="our_team"' : '';
?>

<tr<?php echo $id; ?>>
  <td><?php echo $row['team']; ?></td>
  <td><?php echo $row['score']; ?></td>


Dit is puur een voorbeeldje, je moet het zelf aanpassen aan je eigen code.

Wat je doet is, je kijkt of de naam van het team gelijk is aan jouw eigen team. Zo ja, dan voeg je een id toe. Via css kun je dan de juiste background-color toevoegen.

Duidelijk genoeg?

Toevoeging op 14/11/2012 14:38:43:

Oh, Erwin had ook al een oplossing gepost.

Ik zou wel kiezen voor een id en niet voor bgcolor (zoals in het voorbeeld van Erwin) omdat je html en opmaak zoveel mogelijk gescheiden moet houden.
 
Chris PHP

Chris PHP

14/11/2012 15:11:48
Quote Anchor link
@Ozzie,

Dan zou ik van jou regel 2 dit maken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$id
= $row['team'] == 'FC Damberd Bavikhove' ? ' id="our_team"' : ' id="other_teams"';
?>


Anders krijg je namelijk dat alle andere weer geen id krijgen, endus geen opmaak hebben.
 
Kris Peeters

Kris Peeters

14/11/2012 15:23:42
Quote Anchor link
Volledig off topic:

Doe de groeten aan Gerrit Callewaert.
 
Ozzie PHP

Ozzie PHP

14/11/2012 15:23:55
Quote Anchor link
@Chris:

Dat is niet nodig. Je hoeft niet iedere <tr> een eigen opmaak te geven. Dit doe je overkoepelend.
Je geeft dus alle <tr>'s dezelfde background-color, behalve die met het id "our_team".

Daarnaast is wat jij doet niet goed. Op jouw manier zouden alle <tr>'s (met uitzondering die met id "our_team") precies hetzelde id hebben, terwijl een id uniek moet zijn en dus maar 1x op een pagina mag voorkomen.

Mijn oplossing klopte dus gewoon.
Gewijzigd op 14/11/2012 15:24:50 door Ozzie PHP
 
Wesley Bekaert

Wesley Bekaert

14/11/2012 15:54:18
Quote Anchor link
Dit is de code hoe ik het uit mijn database haal:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
        $SQL
="SELECT * FROM stand ORDER BY punten DESC , gewonnen DESC , doelpuntensaldo DESC;";
        $Result = mysql_query($SQL);
        $teller = 1;
        while($row = mysql_fetch_array($Result))
        {

            echo "<tr bgcolor=\"#999999\">";
            echo "<td bgcolor=\"#999999\">$teller.</td>";
            echo "<td bgcolor=\"#999999\"><p align=\"left\" class=\"style3\">" . $row["ploeg"] . "</p></td>";
            echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["matchen"] . "</p></td>";
            echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["gewonnen"] . "</p></td>";
            echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["gelijk"] . "</p></td>";
            echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["verloren"] . "</p></td>";
            echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["doelpunten voor"] . "</p></td>";
            echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["doelpunten tegen"] . "</p></td>";
            echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["doelpuntensaldo"] . "</p></td>";
            echo "<td bgcolor=\"#999999\"><p align=\"center\" class=\"style3\">" . $row["punten"] . "</p></td>";
            echo "</tr>";
            $teller += 1;
        }

    ?>


Gelieve eens te kijken hoe ik dit kan integreren?
 
Ozzie PHP

Ozzie PHP

14/11/2012 17:04:17
Quote Anchor link
Wesley, je mag ook zelf iets proberen!

Het antwoord heb ik hierboven al gegeven!
 
Bart van der Veen

Bart van der Veen

14/11/2012 21:21:15
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$id
= $row['team'] == 'FC Damberd Bavikhove' ? ' class="our_team"' : ' class="other_teams"';
?>


gebruik class ipv van id. De conventie is id moet uniek zijn, class mag vaker voorkomen.
 
Erwin van Hoof

Erwin van Hoof

14/11/2012 23:11:39
Quote Anchor link
Heb je code iets vereenvoudig met de highlight functie

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
       // ik zou in je css het volgende opnemen:
        // .style3 td {
        //      background-color: #999999; {of de gewenste achtergrond kleur voor andere clubs}
        //      text-align:center;
        // }
        // .onze_club td {
        //      background-color: #666666; {of de gewenste achtergrond kleur voor onze club}
        // }
        // td.ploeg {
        //      text-align:left;
        // }



        $SQL="SELECT * FROM stand ORDER BY punten DESC , gewonnen DESC , doelpuntensaldo DESC;";
        $Result = mysql_query($SQL);
        $teller = 1;
        while($row = mysql_fetch_array($Result))
        {

            $class = ($row['ploeg'] == 'FC Damberd Bavikhove') ? 'onze_club' : 'style3' ;
            echo '<tr class="' . $class . '">';
            echo '<td>' . $teller . '.</td>';
            echo '<td class="ploeg"><p>' . $row["ploeg"] . '</p></td>';
            echo '<td><p>' . $row['matchen'] . '</p></td>';
            echo '<td><p>' . $row['gewonnen'] . '</p></td>';
            echo '<td><p>' . $row['gelijk'] . '</p></td>';
            echo '<td><p>' . $row['verloren'] . '</p></td>';
            echo '<td><p>' . $row['doelpunten voor'] . '</p></td>';
            echo '<td><p>' . $row['doelpunten tegen'] . '</p></td>';
            echo '<td><p>' . $row['doelpuntensaldo'] . '</p></td>';
            echo '<td><p>' . $row['punten'] . '</p></td>';
            echo '</tr>';
            $teller++;
        }

?>


Groet,

Erwin van Hoof
SiteOn
Gewijzigd op 14/11/2012 23:34:06 door Erwin van Hoof
 
Chris PHP

Chris PHP

15/11/2012 07:35:19
Quote Anchor link
Ozzie PHP op 14/11/2012 15:23:55:
@Chris:

Dat is niet nodig. Je hoeft niet iedere <tr> een eigen opmaak te geven. Dit doe je overkoepelend.
Je geeft dus alle <tr>'s dezelfde background-color, behalve die met het id "our_team".

Daarnaast is wat jij doet niet goed. Op jouw manier zouden alle <tr>'s (met uitzondering die met id "our_team") precies hetzelde id hebben, terwijl een id uniek moet zijn en dus maar 1x op een pagina mag voorkomen.

Mijn oplossing klopte dus gewoon.

Dat is natuurlijk niet waar, je kunt 100x hetzelfde div id/ tr id gebruiken voor de opmaak. Hoe kom e erbij dat dit id uniek moet zijn?
 
Ozzie PHP

Ozzie PHP

15/11/2012 11:26:18
Quote Anchor link
Chris, dit is natuurlijk wel waar, anders zou ik het toch niet zeggen?

Een id moet uniek zijn.

Ja, je kunt 100x hetzelfde id gebruiken op een pagina, maar dat is absoluut niet de bedoeling! De meeste browsers zullen deze fout wel pikken, maar als je javascript gaat gebruiken dan gaat het mis. Een (uniek) id mag maar 1x op een pagina voorkomen. Je mag uiteraard wel meerdere (verschillende) id's op een pagina gebruiken.

Stel je wilt een element met id "test" via javascript aanspreken en er staan meerdere elementen op die pagina die de id "test" hebben. Hoe weet je dan wat de juiste is? Dat is dus vragen om problemen.

Dus nogmaals. Iedere id op een pagina moet uniek zijn. Wil je toch meerdere elementen dezelfde vormgeving geven, dan kun je daar classes voor gebruiken. Classes mogen wel meerdere keren op een pagina voorkomen.

(Daarnaast is de manier waarop de topic starter zijn tabel vormgeeft nietbepaald goed te noemen.)
 
Wesley Bekaert

Wesley Bekaert

15/11/2012 11:42:40
Quote Anchor link
Ok, is gelukt. Bedankt aan iedereen. Vooral aan Erwin, jou hulp was de beste. FC Damberd zal u eeuwig dankbaar zijn. :-p
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.