Thanks to everyone who replied. Of course it should be '=='. I was too
focused on why the for was not working and overlooked the obvious.

Mark Roberts
Sr. Systems Analyst
LanApps/Web Development
The Williams Information Services Corporation

-----Original Message-----
From: Christoph Starkmann [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, June 12, 2002 8:27 AM
To: Roberts, Mark; '[EMAIL PROTECTED]'
Subject: RE: [PHP] Else/For loop

Hi Mark!

> Being relatively new to php, I discovered the following after 
> about 2 hours
> of debugging last night and was wondering why???
> I had the following code:
> if ( $num_results = 0 )
> {
>       echo "no records found";
> }
> else
> {
>       for ($i=0; $i < $num_results; $i++)
>       {
>               display record set
>       }
> }
> As a result, the for loop never executed, no matter how many 
> records were
> returned in the record set. I placed echo statements though 
> out to determine
> why the for loop was not being executed. I put an echo 
> statement just before
> the for to make sure the else condition was being met.
> Finally, I just copy/pasted (literally) the for loop to just 
> before the 'if'
> statement. Much to my surprise...the for loop now works 
> perfectly. (Except,
> of course, if there are no records returned).
> The duduction...for loops will not work inside else statements. The
> question...why?

I guess this would be the end of all PHP-programming ;)
Of course you can place any correct block of code inside any other
correct block of code.
But, i your case $num_results IS zero. Just place an echo statement 
inside the if block ;)

Very frequent error ;)

"if ($num_results = 0)" indeed is an asignment, no comparison.
Better use "==" if you want to compare thingies...

> I think I can work around this with some different coding, 
> but why should I
> have to? I have done this same thing in java, perl and other 
> languages...

Yes, also with "==" ;)


It's not a bug, it's a feature.
christoph starkmann
ICQ: 100601600

PHP General Mailing List (
To unsubscribe, visit:

Reply via email to