PDA

View Full Version : Trouble with While()


Michael Morris
10-03-2004, 10:41 PM
I have a script with the following code because I couldn't get a while loop to work...


$timespan = 'thread.dateline<UNIX_TIMESTAMP(CURDATE()) AND thread.dateline>UNIX_TIMESTAMP(CURDATE()-1)';
construct_newsdays();
$timespan = 'thread.dateline<UNIX_TIMESTAMP(CURDATE()-1) AND thread.dateline>UNIX_TIMESTAMP(CURDATE()-2)';
construct_newsdays();
$timespan = 'thread.dateline<UNIX_TIMESTAMP(CURDATE()-2) AND thread.dateline>UNIX_TIMESTAMP(CURDATE()-3)';
construct_newsdays();
$timespan = 'thread.dateline<UNIX_TIMESTAMP(CURDATE()-3) AND thread.dateline>UNIX_TIMESTAMP(CURDATE()-4)';
construct_newsdays();
$timespan = 'thread.dateline<UNIX_TIMESTAMP(CURDATE()-4) AND thread.dateline>UNIX_TIMESTAMP(CURDATE()-5)';
construct_newsdays();
$timespan = 'thread.dateline<UNIX_TIMESTAMP(CURDATE()-5) AND thread.dateline>UNIX_TIMESTAMP(CURDATE()-6)';
construct_newsdays();
$timespan = 'thread.dateline<UNIX_TIMESTAMP(CURDATE()-6) AND thread.dateline>UNIX_TIMESTAMP(CURDATE()-7)';
construct_newsdays();
$timespan = 'thread.dateline<UNIX_TIMESTAMP(CURDATE()-7) AND thread.dateline>UNIX_TIMESTAMP(CURDATE()-8)';
construct_newsdays();


Now, the code I'd like to use but can't get to work


$counter = "0";
while ($counter<=7)
{ $timespan = 'thread.dateline<UNIX_TIMESTAMP(CURDATE()' . $counter . ') AND thread.dateline>UNIX_TIMESTAMP(CURDATE()-' . $counter-1 . ')';
construct_newsdays();
}


Any ideas (yes, I do feel like a complete n00ber for not being able to get a loop to work).

filburt1
10-03-2004, 11:15 PM
A for loop is preferable when you know how many iterations you need.

for ($i = 0; $i < 7; $i++)
{
// your code
}

Michael Morris
10-04-2004, 12:32 AM
Thanks. I'll try it out later this week (Getting late now, don't want to start coding tonight and go back to work tomorrow).

Brad
10-04-2004, 03:29 AM
This should be correct:

$counter = "0";
while ($counter<=7)
{
$timespan = 'thread.dateline<UNIX_TIMESTAMP(CURDATE()' . $counter . ') AND thread.dateline>UNIX_TIMESTAMP(CURDATE()-' . $counter-1 . ')';
construct_newsdays();
$counter++;
}