Как объединить два SQL-запроса в один и отобразить в цикле foreach PHPPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Как объединить два SQL-запроса в один и отобразить в цикле foreach PHP

Сообщение Гость »


Я пытаюсь отобразить двух конкретных людей (доход пары) в таблице (с помощью цикла foreach PHP). Каждый человек должен быть показан в столбце, а доход — в каждой строке.

Чтобы соединить пару/людей, я создал таблицу «j_b_controller», которая может объединять пары с помощью «joint_budget_id». В j_b_controller также есть столбец «position_order», позволяющий контролировать, где разместить person1 и person2. У Person1 позиции_order = 1 и person2 = 2.

Когда одна из учетных записей входит в систему, я начинаю этот сеанс $_SESSION['budget_id'] = $jointbudget['joint_budget_id'];

Пример: Таблица доходов выглядит следующим образом

У человека1 есть доход 1, доход 2, доход 3 и доход 5. человек2 имеет доход1 Сумма дохода1 у каждого человека неодинакова. Каждый доход имеет свою собственную спецификацию «row_type_id», поэтому у дохода1 есть row_type_id 1.

Таблица доходов

Таблица j_b_controller выглядит следующим образом

У пользователя 1 значения Joint_budget_id = 1 и Position_order = 1. У Person2 значения Joint_budget_id = 1 и Position_order = 2

Таблица j_b_controller

Все должно отображаться в таблице HTML (цикл PHP foreach)

ORDER BY row_type_id
Человек 1 Человек 2 Доход1 Доход1 Доход2 Пусто Доход3 Пусто Доход5 Пусто
Надеюсь, вы видите картинку ниже HTML-таблица

Два SQL-запроса, которые следует соединить/объединить:

//Выбираем доходы от человека с Position_order = 1 $stmt = $pdo->prepare('ВЫБЕРИТЕ i.id, i.name, i.amount AS p2_amount, i.row_type_id ИЗ доходов i ПРИСОЕДИНЯЙТЕСЬ к j_b_controller jb НА i.account_id = jb.account_id И jb.joint_budget_id = ? И jb .position_order = **1** ORDER BY i.id И i.row_type_id ASC'); $stmt->execute([$_SESSION['budget_id']]); $income_rows_122s = $stmt->fetchAll(PDO::FETCH_ASSOC); и

//Выбираем доходы от человека с Position_order = 2 $stmt = $pdo->prepare('ВЫБЕРИТЕ i.id, i.name, i.amount AS p2_amount, i.row_type_id ИЗ доходов i ПРИСОЕДИНЯЙТЕСЬ к j_b_controller jb НА i.account_id = jb.account_id И jb.joint_budget_id = ? И jb .position_order = **2** ORDER BY i.id И i.row_type_id ASC'); $stmt->execute([$_SESSION['budget_id']]); $income_rows_122s = $stmt->fetchAll(PDO::FETCH_ASSOC); Я уже пытался использовать UNION и пытался сделать подзапрос

Мой подзапрос на данный момент является закрытым, но с помощью подзапроса я могу вернуть только 1 строку для person2.. и повторяется столько раз, сколько у Person1 есть доходы.

$stmt = $pdo->prepare('SELECT i.*, i.amount AS p1_amount, (ВЫБЕРИТЕ сумму ИЗ доходов i ПРИСОЕДИНЯЙТЕСЬ к j_b_controller jb ON i.account_id = jb.account_id И jb.joint_budget_id = ? И jb.position_order = 2 ЗАКАЗ ПО i.id И i.row_type_id ASC) КАК p2_amount ОТ доходов i ПРИСОЕДИНЯЙТЕСЬ к j_b_controller jb ON i.account_id = jb.account_id И jb.joint_budget_id = ? И jb.position_order = 1 ЗАКАЗ ПО i.id И i.row_type_id ASC'); $stmt->execute([$_SESSION['budget_id'], $_SESSION['budget_id']]); $income_rows_1s = $stmt->fetchAll(PDO::FETCH_ASSOC); Мой foreach выглядит так

Объектов нет [/url] Результат выглядит так (картинка) HTML-таблица

Для пользователя 2 доход 1 должен отображаться только 1 раз, а остальное должно быть пустым. Если бы у человека2 был доход 6, то строка дохода6 для человека1 была бы пустой, а затем у человека2 была бы сумма дохода6 в таблице.

Надеюсь, это имеет смысл. Я НЕ опытный/образованный программист, но мне нравится немного программировать в свободное время.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как объединить два SQL-запроса в один и отобразить в цикле foreach PHP
    Гость » » в форуме Php
    0 Ответы
    62 Просмотры
    Последнее сообщение Гость
  • Как объединить два SQL-запроса в один и отобразить в цикле foreach PHP
    Гость » » в форуме Php
    0 Ответы
    79 Просмотры
    Последнее сообщение Гость
  • Как объединить два SQL-запроса в один и отобразить в цикле foreach PHP
    Гость » » в форуме Php
    0 Ответы
    57 Просмотры
    Последнее сообщение Гость
  • Отобразить два массива в цикле foreach в Php?
    Anonymous » » в форуме Php
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Отобразить два массива в цикле foreach в Php?
    Anonymous » » в форуме Php
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»