Om en Om kleuren

Door Bas , 22 jaar geleden, 4.268x bekeken

in de

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?

while([...fetch...]) {

?>
tag moet je je verbinding met je mysql_fetch_array leggen. Dus bijvoorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
$sql
= mysql_query("SELECT * FROM `abc` ORDER BY `id` ASC") or die (mysql_error());

while($result = mysql_fetch_array($sql)) {

}


?>

Voorbeeld: http://www.baswesselings.nl

Gesponsorde koppelingen

PHP script bestanden

  1. om-en-om-kleuren

 

Er zijn 25 reacties op 'Om en om kleuren'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Han eev
Han eev
22 jaar geleden
 
0 +1 -0 -1
Wel leuk... :P
maar 1 ding, volgens mij moet $rij_Kluer zo zijn:
$rij_kleur = (($a++ % 2) == 0) ? "#66CCFF" : "#FFFFFF";
Bart Waarom verplicht
Bart Waarom verplicht
22 jaar geleden
 
0 +1 -0 -1
De $a++; moet natuurlijk wel in de while zitten ;).

Toch?
- SanThe -
- SanThe -
22 jaar geleden
 
0 +1 -0 -1
Goed zo Bas. Er moest er toch ooit een komen.

Maar je hebt de <table> in de loop zitten, dat is niet verstandig. Verder heb je nog een overbodige regel aan het eind: $a++;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?
$a
= 0;
echo "<table>";
while([...fetch...])
{

    $rij_kleur = ($a++ % 2) ? "#66CCFF" : "#FFFFFF";
    echo "<tr bgcolor='$rij_kleur'>";
    echo "<td>Hello World!</td>";
    echo "</tr>";
}

echo "</table>";
?>

Edit: Typo
Vincent
Vincent
22 jaar geleden
 
0 +1 -0 -1
$rij_kleur = ($a++ % 2) ? "#66CCFF" : "#FFFFFF";
Staat er ergens meer uitleg over deze methode, dus wat er voor de '?' komt en wat er voor en na de ':' mag staan etcetera (wordt hier gekeken naar true/false, 1/anders )?

Bij dit voorbeeld geeft ie 2de kleur wanneer modulo 1 is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
$a = array(1,2,3,4,5,6,7,8,9,10,11,12);
echo "<table>";
$bgcolor = 0;
for ($i = 0; $i < count($a); $i++) {
    $rij_kleur = ($bgcolor++ % 4) ? "#66CCFF" : "#11CCCC";
    echo "<tr bgcolor='$rij_kleur'>";
    echo "<td>".$a[$i]. " - " .($bgcolor % 4)."</td>";
    echo "</tr>";
}
echo "</table>";
- SanThe -
- SanThe -
22 jaar geleden
 
0 +1 -0 -1
@Vincent: Het is eigenlijk gewoon een if() statement. Het is alleen wat compacter geschreven.

$rij_kleur = ($a++ % 2) ? "#66CCFF" : "#FFFFFF";

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if($a++ % 2)
{
$rij_kleur = "#66CCFF";
}

else
{ $rij_kleur = "#FFFFFF";
}

?>
Woopie100
Woopie100
22 jaar geleden
 
0 +1 -0 -1
while([...fetch...]) {

nog nooit gezien was dat? :P
Thaimengda
thaimengda
22 jaar geleden
 
0 +1 -0 -1
dit lijkt me makkelijker
hoef je geen $a var in te stelle ofzo


for ($i=0;$i<20;$i++) {
$rij_kleur = ($rij_kleur == "#FFFFFF") ? "#66CCFF" : "#FFFFFF";

echo "<table>";
echo "<tr bgcolor='$rij_kleur'>";
echo "<td>Hello World!</td>";
echo "</tr>";
echo "</table>";
}
Jelle -
Jelle -
22 jaar geleden
 
0 +1 -0 -1
Zelf zet ik niet de kleur neer maar de class naam.
zo kan ik alsnog alles netjes bijhouden in me css.
Mark D
Mark D
22 jaar geleden
 
0 +1 -0 -1
Hehe, eindelijk een scriot m mensen met zo'n "bekende" vraag naar door te sturen.
Pieter Boussaer
Pieter Boussaer
22 jaar geleden
 
0 +1 -0 -1
hallo,

staat dit niet beter tussen de turorials.
Het is niet echt een script he

Het is meer een uitleg hoe je kleuren aan een tabel moet meegeven.
Mebus  Hackintosh
Mebus Hackintosh
22 jaar geleden
 
0 +1 -0 -1
Eindelijk post er iemand zo een script want hierover word denk wel per maand iets van

3 á 4 keer een topic voor geopent...

na ja GR. mebus!
Harmen
Harmen
22 jaar geleden
 
0 +1 -0 -1
Ik vind dit ook een heel mooi script!!
Ik heb het zelf met if-jes en then-etjes gedaan maar dat is meer typewerk

Thx Bas
Frisbee
Frisbee
22 jaar geleden
 
0 +1 -0 -1
maar als je het netjes wilt doen kun je er beter een css class aan geven zoiets dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

$class
= ($a++ % 2) ? 'even':'odd';

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

?>
- SanThe -
- SanThe -
22 jaar geleden
 
0 +1 -0 -1
@thaimengda: Goeie tip, scheelt weer een $var.

$rij_kleur = ($rij_kleur == "#FFFFFF") ? "#66CCFF" : "#FFFFFF";
of
$class = ($class == "even") ? "odd" : "even";

en verzin de vele variaties.
Richard van Velzen
Richard van Velzen
22 jaar geleden
 
0 +1 -0 -1
Ik dacht zal ik het nou zeggen, nou ik doe het toch maar;)

een bitwise vergelijking is sneller dan een modulo deling, dus deze regel kun je bitwise sneller regelen dan met modulo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$class
= $a++ & 1 ? 'even' : 'odd';
echo '<tr class="' . $class . '">';
?>


Het punt hierbij is dat alleen oneven getallen de eerste bit geset hebben, en aangezien bitwise vergelijkingen in de processor ingebouwd zitten, is dit altijd sneller.
Jan Koehoorn
Jan Koehoorn
22 jaar geleden
 
0 +1 -0 -1
Ja, en als we dan toch aan het inkorten zijn, gebruik gewoon de bitwise XOR:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$class
^= 1;
echo '<tr class="bg' . $class . '">';
?>


in je CSS moet je dan een bg0 en een bg1 class hebben.
Eric Cartman
Eric Cartman
22 jaar geleden
 
0 +1 -0 -1
Ik gebruik Jan z'n oplossing ook, het werkt gewoon ideaal. Je kan de waarde 1 ook veranderen in 5, als je dan toevallig nog een bg5 in je css hebt staan, kun je hartstikke snel van kleur wisselen... Ideaal gewoon...
Thaimengda
thaimengda
22 jaar geleden
 
0 +1 -0 -1
@jan:

ja zo is het helemaal geoptimaliseerd
Thaimengda
thaimengda
22 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo '<tr class="bg' . ($class ^= 1) . '">';
?>
Richard van Velzen
Richard van Velzen
22 jaar geleden
 
0 +1 -0 -1
Maar op die manier heb je niet echt super veel flexibiliteit;) Ik vind mijne handiger, maar de XOR manier is ook handig;)
Bas
Bas
21 jaar geleden
 
0 +1 -0 -1
Ik heb 't via 't PHPHulp forum gekregen, en daarom heb ik hem er dus ook tussen gezet :)
Something Else
Something Else
21 jaar geleden
 
0 +1 -0 -1
Ik vind die van mijzelf lekker werken. Maar die van Jan ziet er ook handig uit.
Eelco
Eelco
21 jaar geleden
 
0 +1 -0 -1
Dit is mijn code wat doe ik allemaal fout?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php require(config.php); ?>

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
$a
= 0;
     echo "<table>";
while($sql = mysql_query("SELECT * FROM `abc` ORDER BY `id` ASC") or die (mysql_error());

while($result = mysql_fetch_array($sql)) {

} {


     $rij_kleur = ($a++ % 2) ? "#66CCFF" : "#FFFFFF";

     echo "<tr bgcolor='$rij_kleur'>";
     echo "<td>Hello World!</td>";
     echo "</tr>";


}

     echo "</table>";
$a++;

?>


Melding:Parse error: parse error, unexpected T_VARIABLE, expecting '(' in mijnsite/ on line 5
Frank -
Frank -
21 jaar geleden
 
0 +1 -0 -1
@Eelco: Hiervoor had je beter een apart topic kunnen aanmaken.

Het probleem is regel 4, die hele while-constructie slaat nergens op. Je hoort 1x de query uit te voeren om vervolgens met een while dit resultaat te doorlopen. En dat doe je dus op regel 6.

En gooi nog even die gore backtics ` uit je query, dat is afval wat niet in een query hoort te staan.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Michael -
Michael -
21 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
for($i=1; $i<25; $i++)
{

$rij_kleur = ($a++ % 2) ? 'blue' : '#ffffff';
echo '<tr><td bgcolor='.$rij_kleur.'">Heel leuk hoor!</td></tr>';
}

?>

eerste kleur = geel
tweede kleur = donkerrood :P
Dus klopt niet helemaal ;)

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. om-en-om-kleuren

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

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.