Thank you Michael.  I learned a lot from your detailed explanation
of how the update and select functions work in relation to
checking for good execution.

I used
if (mysql_affected_rows() == 1)
and got the results I was after.

I am stilling having problem with users browser
caching the screen, but will post that as separate question.

Again thanks for your expert help.



-----Original Message-----
From: Michael Stassen [mailto:[EMAIL PROTECTED]
Sent: Monday, March 13, 2006 4:18 AM
To: [EMAIL PROTECTED]
Cc: mysql@lists.mysql.com
Subject: Re: Checking for good update


[EMAIL PROTECTED] wrote:
> On Sun, 12 Mar 2006, Michael Stassen wrote:
>>
>>[EMAIL PROTECTED] wrote:
>>
>>>looks a bit strange to me.
>>>
>>>>$result = mysql_query($query) or die('Query couldn\'t
>>>>executed:'.mysql_error());
>>>
>>>please try something like this:
>>
>>Why?  There's nothing wrong with the above statement.
>
> I've never seen logic like that before. It looks to me like
> fbsd_user is trying to use the OR operator outside an if
> statement.
>
> Is the mentioned in the php manual somewhere Michael?
>
>>>I've not tested this - but it looks like you are mixing sending
the
>>>mysql query and testing for the result of the query at the same
time,
>>>which AFAIK is not possible.
>>
>>You should try it.  It works just fine, and isn't the problem.
The
>>problem is that you cannot treat the result of an UPDATE as if it
were a
>>SELECT.
>
> Regards
>
> Keith Roberts

Yes, this is documented.  It's also standard practice (in perl and C
as well).

OR is not part of an if statement, it is a logical operator.
<http://www.php.net/manual/en/language.operators.logical.php>  "A or
B" has a
value, true or false, depending on the values of A and of B.  In
fact, if A is
true, then "A or B" is certainly true, so there's no need to look at
B at all.
This short-circuit evaluation, combined with the fact that every
assignment
returns the assigned value
<http://www.php.net/manual/en/language.expressions.php>, makes a
statement like
this possible.

   $result = mysql_query($query) or die('Query
error:'.mysql_error());

First, the function mysql_query() is called.  Its return value is
assigned to
$result, *and* returned as the return value of the assignment
operator (=).  Now
we know A.  If mysql_query succeeded, its return value (A) evaluates
as true, so
the or operation must be true, so no need to look at B.  If, on the
other hand,
A is false (mysql_query failed), we must evaluate B to determine the
value of
the "or" expression.  Of course, to determine the value of B, we
have to call
the referenced function, die().

Michael

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:
http://lists.mysql.com/[EMAIL PROTECTED]


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to