get('autocomplete_artist_'.$KeySize.'_'.$Letters); if(!is_array($AutoSuggest)) { if(!isset($DB) || !is_object($DB)) { require(SERVER_ROOT.'/classes/class_mysql.php'); //Require the database wrapper $DB=NEW DB_MYSQL; //Load the database wrapper } $Limit = (($KeySize === $MaxKeySize)?250:10); $DB->query("SELECT a.ArtistID, a.Name, SUM(t.Snatched) AS Snatches FROM artists_group AS a INNER JOIN torrents_artists AS ta ON ta.ArtistID=a.ArtistID INNER JOIN torrents AS t ON t.GroupID=ta.GroupID WHERE a.Name LIKE '".db_string(str_replace('\\','\\\\',$Letters),true)."%' GROUP BY ta.ArtistID ORDER BY Snatches DESC LIMIT $Limit"); $AutoSuggest = $DB->to_array(false,MYSQLI_NUM,false); $Cache->cache_value('autocomplete_artist_'.$KeySize.'_'.$Letters,$AutoSuggest,1800+7200*($MaxKeySize-$KeySize)); // Can't cache things for too long in case names are edited } $Matched = 0; $Suggestions = array(); $Snatches = array(); $ArtistIDs = array(); foreach ($AutoSuggest as $Suggestion) { list($ID,$Name, $Snatch) = $Suggestion; if (stripos($Name,$FullName) === 0) { $Suggestions[] = display_str($Name); $Snatches[] = number_format($Snatch).' snatches'; $ArtistIDs[] = $ID; if (++$Matched > 9) { break; } } } echo json_encode(array(display_str($FullName),$Suggestions,$Snatches,$ArtistIDs));