Cześć mam skrypt php który posiada w sobie pętle do odpytywania tabeli z bazy danych. Jednak problem pojawia się gdy w bazie danych jest o wiele więcej rekordów wtedy strona/skrypt ładuje się o wiele dłużej. Dlatego chciałbym jakkolwiek zoptymalizować czas wykonania tego skryptu jednak nie mam pomysłu jak
public function checkCountryCodeList()
{
$sql = "SELECT COUNT(*) FROM listFromCountryCode WHERE countryCode = :code AND status = :status";
$array = array(':code' => $this->countryCode, ':status' => $this->status);
$result = $this->db->selectCount($sql, $array);
if($result > 0){
return true;
}else{
return false;
}
}
public function getCountryCodeList()
{
$sql = "SELECT idList
FROM listFromCountryCode
WHERE countryCode = :code";
$array = array(':code' => $this->countryCode);
$result = $this->db->select($sql, $array);
return $result;
}
public function getList()
{
if(!$this->checkCountryCodeList()){
$this->countryCode = DEFAULT_COUNTRYCODE;
}
$countryCodeList = $this->getCountryCodeList();
$data = array();
foreach($countryCodeList as $row){
$sql = "SELECT listFrom.prefix, listFromTranslation.name
FROM listFrom, listFromTranslation
WHERE listFrom.id = listFromTranslation.idList
AND listFrom.id = :id
And listFromTranslation.langCode = :code";
$array = array(
':id' => $row['idList'],
':code' => $this->langCode
);
$result = $this->db->select($sql, $array);
$data[] = ['name' => $result[0]['name'], 'prefix' => $result[0]['prefix']];
}
return $data;
}