appdb/include util.php

WineHQ wineowner at wine.codeweavers.com
Mon Jul 10 22:41:57 CDT 2006


ChangeSet ID:	26402
CVSROOT:	/opt/cvs-commit
Module name:	appdb
Changes by:	wineowner at winehq.org	2006/07/10 22:41:57

Modified files:
	include        : util.php 

Log message:
	Chris Morgan <cmorgan at alum.wpi.edu>
	Speed up outputTopXRowAppsFromRating() by earlying out if we have enough applications to fill our required amount.
	This saves a database query for each top X table.  Also rename $num_apps to $iNum_apps

Patch: http://cvs.winehq.org/patch.py?id=26402

Old revision  New revision  Changes     Path
 1.69          1.70          +8 -5       appdb/include/util.php

Index: appdb/include/util.php
diff -u -p appdb/include/util.php:1.69 appdb/include/util.php:1.70
--- appdb/include/util.php:1.69	11 Jul 2006  3:41:57 -0000
+++ appdb/include/util.php	11 Jul 2006  3:41:57 -0000
@@ -301,11 +301,11 @@ function outputTopXRow($oRow)
 }
 
 /* Output the rows for the Top-X tables on the main page */
-function outputTopXRowAppsFromRating($rating, $num_apps)
+function outputTopXRowAppsFromRating($rating, $iNum_apps)
 {
     /* clean the input values so we can continue to use query_appdb() */
     $rating = mysql_real_escape_string($rating);
-    $num_apps = mysql_real_escape_string($num_apps);
+    $iNum_apps = mysql_real_escape_string($iNum_apps);
 
     /* list of appIds we've already output, so we don't output */
     /* them again when filling in any empty spots in the list */
@@ -318,14 +318,17 @@ function outputTopXRowAppsFromRating($ra
            GROUP BY appVotes.appId
            ORDER BY c DESC
            LIMIT ?";
-    $hResult = query_parameters($sQuery, $rating, $num_apps);
-    $num_apps-=mysql_num_rows($hResult); /* take away the rows we are outputting here */
+    $hResult = query_parameters($sQuery, $rating, $iNum_apps);
+    $iNum_apps-=mysql_num_rows($hResult); /* take away the rows we are outputting here */
     while($oRow = mysql_fetch_object($hResult))
     {
         array_push($appIdArray, $oRow->appId); /* keep track of the apps we've already output */
         outputTopXRow($oRow);
     }
 
+    /* if we have no more app entries we should stop now and save ourselves a query */
+    if(!$iNum_apps) return;
+
     /* if we have any empty spots in the list, get these from applications with images */
     $sQuery = "SELECT DISTINCT appVersion.appId as appId, appVersion.versionId
            FROM appVersion, appData
@@ -338,7 +341,7 @@ function outputTopXRowAppsFromRating($ra
     foreach($appIdArray as $key=>$value)
         $sQuery.="AND appVersion.appId != '".$value."' ";
 
-    $sQuery.=" LIMIT $num_apps";
+    $sQuery.=" LIMIT $iNum_apps";
 
     /* get the list that will fill the empty spots */
     $hResult = query_appdb($sQuery);



More information about the wine-cvs mailing list