NYCPHP Meetup

[nycphp-talk] PHP/MySQL environment problem??

PaulCheung paulcheung at tiscali.co.uk
Mon Mar 3 15:22:15 EST 2008


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