0
votes

I looked at many other questions, but I can't find my own answer in it. here is my syntax error (unexpeted T_IF):

while(($rij1 = mysql_fetch_object($result1))
and( if ($voornaam=NULL) {
            $rij2 = ' ';}
elseif($voornaam!=NULL){
            $rij2 = mysql_fetch_object($result2);})

I looked at the line before the syntax, but I couldn't find what is wrong... Does someone know it?

1
What's with the and and if there? and expects expressions as its operands, not statements. What are you trying to do?Felix Kling
Please, don't use mysql_* functions in new code. They are no longer maintained and the deprecation process has begun on it. See the red box? Learn about prepared statements instead, and use PDO or MySQLi - this article will help you decide which. If you choose PDO, here is a good tutorial.tereško

1 Answers

4
votes

Try rewriting your code as:

while ($rij1 = mysql_fetch_object($result1))
{
    if ($voornaam === NULL) 
    {
        $rij2 = ' ';
    } 
    else
    {
        $rij2 = mysql_fetch_object($result2);
    }
}

Edit: Corrected your condition in the first if, as @andrewsi spotted - = is an assignment operator, so previously your code was changing $voornaam to NULL, then checking if the result evaluated to true (which, of course, it never would - so the second block would always execute)

In your original code, you're using the and operator - presumably having seen it used in some well meaning but poorly coded examples like mysql_connect(...) or die('an error occurred');.

What's happening in that example is that the result of the first statement - mysql_connect() - is checked. If it evaluates to true, the second statement never executes, but if it evaluates to false then the second statement - die('an error occurred'); - is executed. As you've just discovered, this pattern is confusing and best avoided.