TalkPHP
 
 
Account Login
Latest Articles
» The basic usage of PHPTAL, a XML/XHTML template library for PHP
» Vulnerable methods and the areas they are commonly trusted in.
» Simple way to protect a form from bot
» The Basics On: How Session Stealing Works
» How to keep your forms from double posting data
IRC Channel
IRC Speech Bubble Join the friendly bunch on IRC...
(#TalkPHP on Freenode)

...Also available via a web interface.

See this thread for information on the TalkPHP Free Hugs Initiative™. Subject to availability.
Associates
Associates
CSS Tutorials
Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old 03-22-2005, 03:20 AM   #1 (permalink)
The Visitor
 
Join Date: Mar 2005
Posts: 3
Thanks: 0
harryhood is on a distinguished road
Default Using a simple counter

I have a small project where records are queried from a database using php and the results are then displayed to the user. To display the results I am using a simple

PHP Code:
do {
echo 
'<tr><td style=background-color: somecolor>some text</td></tr>';

} while {......} 
routine.

What I would like to do is alternate the color of the background text in each row shown by the do - while loop. I know I can assign "somecolor" to a variable and alternate the value of somecolor based on a counter being odd or even. I just do not know how to declare or increment the counter.

I am wondering what the simplest way to accomplish this would be. Sorry if I did not explain this very well. I've been staring at a screen all day and think I am going blind. :)

Any help would be appreciated.
harryhood is offline  
Reply With Quote
Old 03-22-2005, 03:40 AM   #2 (permalink)
The Contributor
 
Join Date: Mar 2005
Posts: 81
Thanks: 0
AlEast is on a distinguished road
Default

PHP Code:

//Initialize Vars
$altCounter=1;

do {
 
  
//if odd then white if even then black
  
$somecolor = (1&$altCounter) ? "white":"black"
  echo 
'<tr><td style=background-color: $somecolor>some text</td></tr>';
  
$altCounter++;

} while {......} 
This should work out for you and I'm sure others can suggest other methods as well. Basically just store
__________________
NEWEDGE Services, Inc. - Developers of ClientExec
AlEast is offline  
Reply With Quote
Old 03-22-2005, 02:48 PM   #3 (permalink)
The Visitor
 
Join Date: Mar 2005
Location: WW, WA
Posts: 3
Thanks: 0
NotteScura is on a distinguished road
Default

The code I use normally for something like that is...

PHP Code:
// Initialize Vars
$rowEven 0;

do {
  
// If odd, use white, if even use black
  
if(!$rowEven) {
    
$rowEven 1;
    
$bgColor "white";
  }
  else {
    
$rowEven 0;
    
$bgColor "black";
  }

  echo 
"<tr><td style=background-color: $bgColor>Text</td></tr>";
} while (...); 
Obviously my version is a longer way of doing it compared to AlEast's, so you may stick with his version, I just find it easier to read when done in this fashion. :)

NS

Last edited by NotteScura : 03-22-2005 at 02:50 PM.
Send a message via ICQ to NotteScura Send a message via MSN to NotteScura Send a message via Yahoo to NotteScura
NotteScura is offline  
Reply With Quote
Old 04-08-2005, 05:05 PM   #4 (permalink)
The Contributor
 
Join Date: Apr 2005
Location: Kent, UK
Posts: 54
Thanks: 0
Dr John is on a distinguished road
Default

You don't need a counter. Try this (in simple pseudocode)

your do

if somecolor==black
somecolor = white;
else somecolor = black;

your phpcode

while
Dr John is offline  
Reply With Quote
Old 04-08-2005, 06:27 PM   #5 (permalink)
The Acquainted
 
Join Date: Mar 2005
Posts: 177
Thanks: 0
CreativeLogic is on a distinguished road
Default

Yea, the counter really isn't needed unless for some other purpose not mentioned in the first post.
CreativeLogic is offline  
Reply With Quote
Old 04-13-2005, 12:22 PM   #6 (permalink)
The Wanderer
 
Join Date: Apr 2005
Posts: 7
Thanks: 0
ShadowWind is on a distinguished road
Default

Actually there is a cool trick in C that should work in PHP...

To toggle between on and off in any situation, you can just do this (if you don't have a counter running)...

$j=1-$j;

if $j equals 1 then it equals 0
if $j equals 0 then it equals 1

Then just check $j to do whatever you want 0 or 1 to represent.
ShadowWind is offline  
Reply With Quote
Old 04-13-2005, 01:38 PM   #7 (permalink)
The Contributor
 
Join Date: Apr 2005
Location: Kent, UK
Posts: 54
Thanks: 0
Dr John is on a distinguished road
Default

ShadowWind, if you look three posts above yours you'll see basically the same thing, but without the extra step of finding the value of $j (which should start with $j=1 somewhere outside the if construction to seed the initial value). And several of the other posts use variants of the toggle technique, eg NotteScura's method.
Dr John is offline  
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


All times are GMT. The time now is 03:33 AM.

 
     

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0
Inactive Reminders By Icora Web Design