public static function fetchQueries($csvFile, $avgSearchThresh, $groupTitles) { list($err, $seed, $csvRows) = KeywordIdeasCSV::getKeywordIdeas($csvFile, $avgSearchThresh); if (!$err) { foreach ($csvRows as $row) { list($errt, $totalResults, $titles) = self::fetchQueryFromYBoss($row); if ($errt) { $err1 .= $errt; } if (!$errt) { self::updateDb($seed, $row, $titles, $totalResults); } } if ($err1) { echo $err1; } } // return array($err, $seed, $rows); if (!$err) { $seedKeyword = KeywordIdeasCSV::getSeedKeyword($seed); //get title groups using dedup mechanism $isTitleGrpsUpdated = LDao::isTitleGrpsUpdated($seedKeyword); if ($isTitleGrpsUpdated === false) { $titlesGroups = self::groupUsingDedup($seedKeyword); if (!empty($titlesGroups)) { self::updateDbTitleGroupsInfo($seedKeyword, $titlesGroups); } } //create csv $titleCsv = self::getTitlesAsCsv($seedKeyword, $groupTitles); } return array($err, $seed, $titleCsv); }
protected static function updateDb($seed, $rows) { include_once 'LDao.php'; include_once 'dbutils.php'; if (empty($seed) || empty($rows)) { $err = "Either seed or rows data empty!"; } if (!$err) { $seedKeyword = self::getSeedKeyword($seed); if (empty($seedKeyword)) { $err = "Seed keyword is empty"; } if (!$err) { $res = LDao::addDbSeedKeyword($seedKeyword); $getSuggForTheseKw = array(); $activeKeywords = array(); foreach ($rows as $row) { $keyword = $row[self::KEY_KEYWORD]; $avgMonthSearches = $row[self::KEY_AVG_SEARCHES]; $activeKeywords[] = $keyword; if (empty($keyword)) { continue; } //check if row exists in keyword table $res = LDao::getKeyword($seedKeyword, $keyword); if ($res === false || $res->numRows() == 0) { //if no keyword found $getSuggForTheseKw[] = $row; } else { //check if need to refetch sugg foreach ($res as $dbRow) { $fetchedTs = $dbRow->fetched_ts; if (LDao::dayDiffWithNow($fetchedTs) > self::GET_DATA_AFTER_DAYS) { $getSuggForTheseKw[] = $row; } break; //there should be only one row hence break } } } if (count($activeKeywords) > 0) { LDao::markKeywordsInactive($seedKeyword, $activeKeywords); LDao::markTitlesInactive($seedKeyword); } } } return array($err, $getSuggForTheseKw); }