Fw: [nycphp-talk] PHP/MySQL environment problem??
PaulCheung
paulcheung at tiscali.co.uk
Mon Mar 3 15:25:08 EST 2008
Sorry I sent an incomplete email. please disregard.
Thanks
Paul
----- Original Message -----
From: "PaulCheung" <paulcheung at tiscali.co.uk>
To: "NYPHP Talk" <talk at lists.nyphp.org>
Sent: Monday, March 03, 2008 8:22 PM
Subject: Re: [nycphp-talk] PHP/MySQL environment problem??
> Can't believe I wrote Linus instead of Linux. Anyway, you are correct the
> application is working under windows.
>
>
> ----- Original Message -----
> From: "David Krings" <ramons at gmx.net>
> To: "NYPHP Talk" <talk at lists.nyphp.org>
> Sent: Monday, March 03, 2008 6:13 PM
> Subject: Re: [nycphp-talk] PHP/MySQL environment problem??
>
>
>> PaulCheung wrote:
>> I looked over the code and a few things struck me odd (which doesn't mean
>> they are wrong!).
>>
>>
>>> //
>>
>> You add this between each handful of lines without adding any informative
>> comment. I'd remove those slashes and make the code easier to read - or
>> even better add commentary.
>>
>>> @ $cps; //Current Page Starting row number
>>> @ $lps; //Last Page Starting row number
>>> @ $rpp; //Records Per Page
>>
>> I have no idea what the significance of these lines is. The @ is usually
>> used to suppress error message output (IMHO a bad idea), but the
>> statement (or lack thereof) doesn't do anything.
>>
>>
>>> $q="SELECT SQL_CALC_FOUND_ROWS *
>>> FROM tr_test_record
>>> WHERE $access = tr_access";
>>> //
>>> $rs=mysql_query($q) or die(mysql_error());
>>> //
>>> $q0="Select FOUND_ROWS()";
>>
>> When you run the query in the MySQL query editor, how many rows does
>> MySQL return?
>> I always burn extra cycles and read the query results in a loop and
>> increase a counter. All the MySQL functions that return a count do that
>> for the last query run under the current connection, which may or may not
>> be the last query that your code ran.
>> I am not that familiar with all the SQL keywords, but it strikes me that
>> SQL_CALC_FOUND_ROWS returns already the count that you are looking for,
>> which is one result row. So counting that result later on will always be
>> 1.
>> I rather have some of the SQL epxerts chime in here as I quickly move
>> into an area that I have no clue about.
>>
>>> //
>>> $rs0=mysql_query($q0) or die(mysql_error());
>>> //
>>> $row0=mysql_fetch_array($rs0);
>>> //
>>> $nr0 = $row0["FOUND_ROWS()"]; //Number of rows found without LIMIT in
>>> action
>>> ?>
>>
>> As mentioned above, I run a plain simple select query and increase a
>> counter while looping through the results returned. May not be as elegant
>> and efficient, but works reliably. I just don't gtee away from thinking
>> that SELECT SQL_CALC_FOUND_ROWS * FROM tr_test_record WHERE $access =
>> tr_access doesn't return what you expect it should (as far as I
>> understand it thsi already counts the rows that would be returned when
>> running the query without SQL_CALC_FOUND_ROWS). Plug that into the query
>> browser and see what happens. My uneducated guss is that you basically
>> count how many row counts (not rows!!!) there were in the last query,
>> which should always be 1. But then again, you say it works on Windoze....
>>
>>
>> David
>> _______________________________________________
>> New York PHP Community Talk Mailing List
>> http://lists.nyphp.org/mailman/listinfo/talk
>>
>> NYPHPCon 2006 Presentations Online
>> http://www.nyphpcon.com
>>
>> Show Your Participation in New York PHP
>> http://www.nyphp.org/show_participation.php
>
More information about the talk
mailing list