rijen uit database kleuren.
Ik heb al een en ander gevonden op deze site, maar...'k geraak er nog niet uit.
Mijn stukje beginnerscode:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
include ("connect.php");
$result = mysql_query("SELECT * FROM wedstrijden order by datum");
while($row = mysql_fetch_array($result))
{
// Instellen van de tabel.
echo "<table width='745' border='0' align='center' cellpadding='5' cellspacing='3' >";
echo "<tr>";
echo "<td align='center' border='1' background-color='#FFFFFF' bordercolor='#C0C0C0' width='80' class='style4'>" . $row['land'] . "</td>";
echo "<td align='center' border='1' background-color='#FFFFFF' bordercolor='#C0C0C0' width='70' class='style4'>" . $row['datum'] . "</td>";
echo "<td align='center' border='1' background-color='#FFFFFF' bordercolor='#C0C0C0' width='70' class='style4'>" . $row['datum2']. "</td>";
echo "<td border='1' background-color='#FFFFFF' bordercolor='#C0C0C0' width='180' class='style4'>" . $row['typewedstrijd'] . "</td>";
echo "<td border='1' background-color='#FFFFFF' bordercolor='#C0C0C0' width='315' class='style4'>" . $row['club'] . "</td>";
echo "<td border='1' background-color='#FFFFFF' bordercolor='#C0C0C0' width='30' class='style4'>" . '<a href="detail-wedstrijden.php?id='.$row['id'].'">detail</a>' . "</td>";
echo "</tr>";
echo "</table>";
}
mysql_close($con);
?>
include ("connect.php");
$result = mysql_query("SELECT * FROM wedstrijden order by datum");
while($row = mysql_fetch_array($result))
{
// Instellen van de tabel.
echo "<table width='745' border='0' align='center' cellpadding='5' cellspacing='3' >";
echo "<tr>";
echo "<td align='center' border='1' background-color='#FFFFFF' bordercolor='#C0C0C0' width='80' class='style4'>" . $row['land'] . "</td>";
echo "<td align='center' border='1' background-color='#FFFFFF' bordercolor='#C0C0C0' width='70' class='style4'>" . $row['datum'] . "</td>";
echo "<td align='center' border='1' background-color='#FFFFFF' bordercolor='#C0C0C0' width='70' class='style4'>" . $row['datum2']. "</td>";
echo "<td border='1' background-color='#FFFFFF' bordercolor='#C0C0C0' width='180' class='style4'>" . $row['typewedstrijd'] . "</td>";
echo "<td border='1' background-color='#FFFFFF' bordercolor='#C0C0C0' width='315' class='style4'>" . $row['club'] . "</td>";
echo "<td border='1' background-color='#FFFFFF' bordercolor='#C0C0C0' width='30' class='style4'>" . '<a href="detail-wedstrijden.php?id='.$row['id'].'">detail</a>' . "</td>";
echo "</tr>";
echo "</table>";
}
mysql_close($con);
?>
Kan iemand me op weg helpen?
Daarentegen, jouw methode van $i ^= 1; gebruik ik nog steeds! Gebruikte voorheen wel soortgelijke methode, maar dan met een verkorte if.
het voorbeeld dat je me gegevenhebt werkt prima, waarvoor dank.
Alleen, ik krijg nu evenveel keer een rij te zien als de waarde van $1
Als ik het in tabellen gebruik zonder data op te halen uit een mysql database werkt het goed hoor.
dit is de code:
<style type="text/css">
tr.bg0 { background: #DDDDDD; }
tr.bg1 { background: #CCCCCC; }
</style>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
include ("XXXXXX.php");
$result = mysql_query("SELECT * FROM wedstrijden order by datum");
while($row = mysql_fetch_array($result))
{
// Instellen van de tabel.
$flip = 0;
for ($i = 0; $i < 2; $i++) {
$flip ^= 1;
echo "<table width='745' border='0' align='center' cellpadding='5' cellspacing='3' >";
echo '<tr class="bg' . $flip . '">';
echo "<td align='center' border='1' bordercolor='#C0C0C0' width='80' class='style4'>" . $row['land'] . "</td>";
echo "<td align='center' border='1' bordercolor='#C0C0C0' width='70' class='style4'>" . $row['datum'] . "</td>";
echo "<td align='center' border='1' bordercolor='#C0C0C0' width='70' class='style4'>" . $row['datum2']. "</td>";
echo "<td border='1' bordercolor='#C0C0C0' width='180' class='style4'>" . $row['typewedstrijd'] . "</td>";
echo "<td border='1' bordercolor='#C0C0C0' width='315' class='style4'>" . $row['club'] . "</td>";
echo "<td border='1' bordercolor='#C0C0C0' width='30' class='style4'>" . '<a href="detail-wedstrijden.php?id='.$row['id'].'">detail</a>' . "</td>";
echo "</tr>";
}
echo "</table>";
}
mysql_close($con);
?>
include ("XXXXXX.php");
$result = mysql_query("SELECT * FROM wedstrijden order by datum");
while($row = mysql_fetch_array($result))
{
// Instellen van de tabel.
$flip = 0;
for ($i = 0; $i < 2; $i++) {
$flip ^= 1;
echo "<table width='745' border='0' align='center' cellpadding='5' cellspacing='3' >";
echo '<tr class="bg' . $flip . '">';
echo "<td align='center' border='1' bordercolor='#C0C0C0' width='80' class='style4'>" . $row['land'] . "</td>";
echo "<td align='center' border='1' bordercolor='#C0C0C0' width='70' class='style4'>" . $row['datum'] . "</td>";
echo "<td align='center' border='1' bordercolor='#C0C0C0' width='70' class='style4'>" . $row['datum2']. "</td>";
echo "<td border='1' bordercolor='#C0C0C0' width='180' class='style4'>" . $row['typewedstrijd'] . "</td>";
echo "<td border='1' bordercolor='#C0C0C0' width='315' class='style4'>" . $row['club'] . "</td>";
echo "<td border='1' bordercolor='#C0C0C0' width='30' class='style4'>" . '<a href="detail-wedstrijden.php?id='.$row['id'].'">detail</a>' . "</td>";
echo "</tr>";
}
echo "</table>";
}
mysql_close($con);
?>
Weet je daar raad mee?
Geert.
dit toch net effe wat makkelijker te begrijpen. Het enige wat je meeneemt is de teller. I.p.v. wat Jan doet met $flip, zet je daar $teller neer. En aan het eind van je while-loop zet je:
Dat moet werken ;-).
Misschien is Dat moet werken ;-).
Code (php)
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
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
include 'config.php';
?>
<style type="text/css">
td { padding: 0px 0px; color: #fff; }
tr.bg0 { background:#FF0000; }
tr.bg1 { background:#0000FF; }
</style>
<table cellpadding="0" cellspacing="0" width="500" border="1" align="center">
<?php
$sql = "SELECT naam,geslacht FROM gebruikers";
$query = mysql_query($sql);
$flip = 0;
while($array = mysql_fetch_assoc($query)) {
$flip ^= 1;
echo '<tr class="bg' . $flip . '">';
echo '<td width= 50%>'.$array['naam'].'</td>';
echo '<td>'.$array['geslacht'].'</td>';
echo '</tr>';
}
?>
</table>
</body>
</html>
include 'config.php';
?>
<style type="text/css">
td { padding: 0px 0px; color: #fff; }
tr.bg0 { background:#FF0000; }
tr.bg1 { background:#0000FF; }
</style>
<table cellpadding="0" cellspacing="0" width="500" border="1" align="center">
<?php
$sql = "SELECT naam,geslacht FROM gebruikers";
$query = mysql_query($sql);
$flip = 0;
while($array = mysql_fetch_assoc($query)) {
$flip ^= 1;
echo '<tr class="bg' . $flip . '">';
echo '<td width= 50%>'.$array['naam'].'</td>';
echo '<td>'.$array['geslacht'].'</td>';
echo '</tr>';
}
?>
</table>
</body>
</html>
Je kunt de datatypen enzo nog aanpassen!
@Jan: is % niet sneller en zuiniger dan ^?
ik gebruik altijd: $k=1-$k
Of zie ik nu iets over het hoofd?
@ geert:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
include 'xxx.php';
$sql = "
SELECT *
FROM wedstrijden
ORDER BY datum ASC
";
if (!$result = mysql_query ($sql)) {
trigger_error (mysql_error ());
}
else {
$flip = 0;
echo '<table width="745" border="0" align="center" cellpadding="5" cellspacing="3">';
while ($row = mysql_fetch_assoc ($result)) {
$flip ^= 1;
echo '<tr class="bg' . $flip . '">';
// hier je td's echoën
echo '</tr>';
}
echo '</table>';
}
?>
include 'xxx.php';
$sql = "
SELECT *
FROM wedstrijden
ORDER BY datum ASC
";
if (!$result = mysql_query ($sql)) {
trigger_error (mysql_error ());
}
else {
$flip = 0;
echo '<table width="745" border="0" align="center" cellpadding="5" cellspacing="3">';
while ($row = mysql_fetch_assoc ($result)) {
$flip ^= 1;
echo '<tr class="bg' . $flip . '">';
// hier je td's echoën
echo '</tr>';
}
echo '</table>';
}
?>
ik heb de code nog eens ingevoegd en aangepast voor mijn gegevens.
hier gebruik een iets andere methode om de gegevens op te vragen.
in elk geval, de pagina word nu goed getoond.
ik zal in de broncode je naam vermelden en zodra de site af is, stuur ik even het adres.
in elk geval bedankt (aan allen) en tot een volgend probleem...
$rowcolor1="#806000";
$rowcolor2="#A08000";
$rowcolor=$rowcolor1;
En daarna in de loop
print "\t<tr>\n";
print "\t\t<td bgcolor=$rowcolor align= \"left\" valign=\"top\" width= \"75\">$date_nl</td>\n"; // Datum
print "\t\t<td bgcolor=$rowcolor align= \"left\" valign=\"top\" width= \"75\">$time</td>\n"; // Tijd
print "\t\t<td bgcolor=$rowcolor align= \"left\" valign=\"top\" width=\"100\">$line[3]</td>\n"; // IP-Adres
print "\t\t<td bgcolor=$rowcolor align=\"right\" valign=\"top\" width=\"400\">$line[4]</td>\n"; // Hostnaam
print "\t</tr>\n";
// Hier zorgen we ervoor dat de achtergrond-rij-kleur gewisseld wordt.
switch ($rowcolor) {
case $rowcolor1:
$rowcolor=$rowcolor2;
break;
case $rowcolor2:
$rowcolor=$rowcolor1;
break;
}
}
mysql_close($mysql_id);
Je zou nog de kleuren kunnen uitbreiden.
Misschien beter om er <?php en ?> omheen te zetten. Bovendien haal je variabelen natuurlijk uit de quotes en geef je een achtergrondkleur als style aan de ROW dus niet aan de CELL ;-).