NYCPHP Meetup

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