Я создаю эту таблицу «план»
======================
| id | name | status |
| 1 | Alpha| 1 |
| 2 | Beta | 1 |
| 3 | Char | 1 |
======================
И эту таблицу как подплан «plan_sub»
===================================
| id | name | min | max | main_id |
| 1 | v1 | 1 | 10 | 2 |
| 2 | v2 | 11 | 20 | 2 |
| 3 | v3 | 21 | 100 | 2 |
===================================
Я создал форму, которая содержит номер типа ввода. После отправки формы будут отправлены данные «plan_id» и «amount».
Я хочу получить выбор базы данных на основе представленных данных формы. Например, форма отправит мне plan_id = 2 и amount = 11, затем я создал этот PDO.
$stmt = $conn->prepare("SELECT * FROM plans p INNER JOIN plans_sub ps ON ps.main_id = p.id WHERE ps.main_id = :pid AND (min >= :amount OR min IS NULL) AND (max <= :amountOne OR max IS NULL)");
$stmt->bindValue(':pid',$_POST['plan_id']);
$stmt->bindValue(':amount',$_POST['amount']);
$stmt->bindValue(':amountOne',$_POST['amount']);
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$planId = $stmt->fetch();
Когда я пытаюсь получить результат, распечатав его.
print_r($planId);
Это дало мне нет данных. Он должен дать мне данные
Plan: Beta
plan sub: v2
, потому что отправленные данные - это идентификатор плана 2 (main_id в планах_sub) и сумма 11.
=========== ==============================
РЕДАКТИРОВАТЬ
Я пытаюсь использовать foreach вот так
$stmt = $conn->prepare("SELECT * FROM plans p INNER JOIN plans_sub ps ON ps.main_id = p.id WHERE main_id = :pid");
$stmt->bindValue(':pid',$_POST['plan_id']);
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$plans = $stmt->fetchAll();
foreach ($plans as $key => $value) {
if($_POST['amount']>=$value['min'] && $_POST['amount']<=$value['max']){
$planid = $value;
}
}
и print_r ($ planid), чтобы увидеть результат. Да, это дает мне Beta v2 с количеством отправленных форм = 11 и plan_id = 2.
Но у меня есть следующие вопросы. Как если в отправленной форме сумма = 0 и plan_id = 2 ?? Если отправленная форма похожа на эту, я хочу показать результат как Beta v1 с изменением суммы на 1 в качестве минимального минимума в «планах_подсуб».
Может ли кто-нибудь помочь мне получить данные?