Сегодня я искал, как сохранить различные значения из запроса, который вводится 4 раза в разные категории. Результат такой, какой я хотел, я получил значения, но когда я их возвращаю, я получаю только последний запрос в качестве результата.
Мне интересно, какой будет хороший результат для этой проблемы
public function setMaxId() {
$categorys = $this->getCategorys();
foreach ($categorys as $category) {
$sth = $this->conn->prepare("SELECT MAX(data_id) FROM bcc_data WHERE data_category = '" . $category['bcc_data_category_name'] . "'");
$sth->execute();
$id = $sth->fetchAll();
$maxId = $id[0]['MAX(data_id)'];
var_dump($maxId);
}
}
var_dump:
string '22' (length=2)
string '35' (length=2)
string '34' (length=2)
string '29' (length=2)
Похоже, вы перезаписываете max id каждый раз в цикле, если вы хотите вернуть их все, это было бы так:
$maxIds = [];
foreach ($categorys as $category) {
$sth = $this->conn->prepare("SELECT MAX(data_id) FROM bcc_data WHERE data_category = '" . $category['bcc_data_category_name'] . "'");
$sth->execute();
$id = $sth->fetchAll();
$maxIds[] = $id[0]['MAX(data_id)'];
}
return $maxIds; //or return max($maxIds) if you just want the single max
Других решений пока нет …