public static function getKeyword($keyword) { //array_unique(array_merge($array1, $array2)); $dbObject = new DbObject(); $winnerArray = array("keyword" => $keyword, "itemIdScore" => array()); $finalWinnerArray = array("keyword" => $keyword, "itemIdScore" => array()); $days = $dbObject->query('select days_in_words, days_in_number, multiplication_factor from available_days'); $query = ""; foreach ($days as $key => $day) { $days[$day['days_in_number']] = $days[$key]; unset($days[$key]); $query .= 'select "' . $day["days_in_words"] . '" as days, ' . $day["days_in_number"] . ' as n_days, a.id, a.id_keyword,a.id_item_id,a.score from ' . $day["days_in_words"] . '_days_item_id_ae as a where a.id_keyword="' . $keyword . '" union '; } $query = substr($query, 0, count($query) - 7); $results = $dbObject->query($query); if (!is_null($results)) { foreach ($results as $result) { $score = $result['score'] * $days[$result['n_days']]['multiplication_factor']; array_push($winnerArray["itemIdScore"], array("itemId" => $result["id_item_id"], "score" => $score)); } $winnerArrayLength = count($winnerArray['itemIdScore']); $pointer = 0; $matched = false; //while(isset($winnerArray['itemIdScore'][$pointer])){ $itemcount = count($winnerArray['itemIdScore']); while ($itemcount > $pointer) { if (!isset($winnerArray['itemIdScore'][$pointer]['itemId'])) { $pointer++; continue; } $finalScore = $winnerArray['itemIdScore'][$pointer]['score']; foreach ($winnerArray['itemIdScore'] as $key => $value) { if ($key != $pointer) { //for($i=$pointer; $i<$winnerArrayLength; $i++){ if ($value['itemId'] == $winnerArray['itemIdScore'][$pointer]['itemId']) { echo $value['itemId'] . " " . $winnerArray['itemIdScore'][$pointer]['itemId'] . '\\n]'; $finalScore = $winnerArray['itemIdScore'][$key]['score'] + $finalScore; //array_push($finalWinnerArray["itemIdScore"], array("itemId" => $value['itemId'], "score" => $finalScore)); $matched = array("itemId" => $value['itemId'], "score" => $finalScore); unset($winnerArray['itemIdScore'][$key]); } } } if ($matched === false) { array_push($finalWinnerArray["itemIdScore"], $matched); $matched = false; } array_push($finalWinnerArray["itemIdScore"], array("itemId" => $winnerArray['itemIdScore'][$pointer]['itemId'], "score" => $finalScore)); unset($winnerArray['itemIdScore'][$pointer]); $pointer++; } } var_dump($finalWinnerArray); return; return json_encode($winnerArray); }
static function getItemIdScore($keyword) { $orderScore = $visitScore = $productViewsScore = $cartsScore = 0; $dbObject = new DbObject(); $winnerArray = array("keyword" => $keyword, "itemIdScore" => array()); //array("subCategory"=>"Dress", "score"=>4.3), array("subCategory"=>"Top", "score"=>3.2) $query = 'select k.value, b.value, tdbae.orders, tdbae.visits, tdbae.product_views, tdbae.carts from three_days_item_id_ae as tdbae left join brand as b on b.id = tdbae.id_brand left join keyword as k on k.id = tdbae.id_keyword where k.value="' . $keyword . '"'; $results = $dbObject->query($query); $keywordResult = $dbObject->query('select * from keyword where value="' . $keyword . '"'); if (!is_null($results)) { foreach ($results as $result) { if ($keywordResult[0]['orders'] != 0) { $orderScore = $result['orders'] / $keywordResult[0]['orders']; } if ($keywordResult[0]['visits'] != 0) { $visitScore = $result['visits'] / $keywordResult[0]['visits']; } if ($keywordResult[0]['product_views'] != 0) { $productViewsScore = $result['product_views'] / $keywordResult[0]['product_views']; } if ($keywordResult[0]['carts'] != 0) { $cartsScore = $result['carts'] / $keywordResult[0]['carts']; } //var_dump($orderScore, $visitScore, $productViewsScore, $cartsScore);echo "now powers"; if ($visitScore > 0.01) { $score = $orderScore + $visitScore + $productViewsScore + $cartsScore; array_push($winnerArray["brandScore"], array("brand" => $result["value"], "score" => $score)); } } } return json_encode($winnerArray); }
/** * Executes a Query on the Database to list all tables of the Selected DB * * @return MySQLi Results * @access private * @see executeBackup() * */ private function listDbTables() { return $this->dbObject->query('SHOW TABLES;'); }