PHP/MySQL | Передача переменной в вид с вложенным циклом

DELETED
Автор
4 июля 2019, в 13:59
Delete
<?php foreach ($data_operation as $operation) : ?>
<!--тут вывод операций-->
<?php foreach ($data_mission as $mission) : ?>
<!--тут вывод миссий операций-->
<?php endforeach; ?>
<?php endforeach; ?>
в вид передаётся
<?php
$data_operation = $this->pdo('select * from operations, users_operations where operations.id = users_operations.id_operation && users_operations.id_user = ?', [
$this->id
])->fetchAll(PDO::FETCH_OBJ);
$data_mission = $this->pdo('select * from missions, users_missions where missions.id_operation = ? && missions.id = users_missions.id_mission && users_missions.id_user = ?', [
$data_operation->id,
$this->id
])->fetchAll(PDO::FETCH_OBJ);
$this->set(compact('data_operation', 'data_mission'));
ясен пень косяк: вложенный цикл в виде ведь не знает, какой id у следующей итерации родителя
как пофиксить и передать в вид?
________
посл. ред. 04.07.2019 в 14:06; всего 2 раз(а); by Вероломство
Вероломство (04.07.2019 в 13:59)
В виде схема
в вид передаётся
ясен пень косяк: вложенный вид ведь не знает, какой id у следующей итерации родителя
как пофиксить и передать в вид?
В виде схема
<?php
<?php foreach ($data_operation as $operation) : ?>
<!--тут вывод операций-->
<?php foreach ($data_mission as $mission) : ?>
<!--тут вывод миссий операций-->
<?php endforeach; ?>
<?php endforeach; ?>
в вид передаётся
<?php
$data_operation = $this->pdo('select * from operations, users_operations where operations.id = users_operations.id_operation && users_operations.id_user = ?', [
$this->id
])->fetchAll(PDO::FETCH_OBJ);
$data_mission = $this->pdo('select * from missions, users_missions where missions.id_operation = ? && missions.id = users_missions.id_mission && users_missions.id_user = ?', [
$data_operation->id,
$this->id
])->fetchAll(PDO::FETCH_OBJ);
$this->set(compact('data_operation', 'data_mission'));
ясен пень косяк: вложенный вид ведь не знает, какой id у следующей итерации родителя
как пофиксить и передать в вид?
А почему бы не сделать одним запросом, а в цикле уже сгруппировать все как должно быть

Итог: минус один запрос и минус один цикл

DELETED
Автор
4 июля 2019, в 14:03
Delete
System (04.07.2019 в 14:01)
Вероломство (04.07.2019 в 13:59)
В виде схема
в вид передаётся
ясен пень косяк: вложенный вид ведь не знает, какой id у следующей итерации родителя
как пофиксить и передать в вид?
А почему бы не сделать одним запросом, а в цикле уже сгруппировать все как должно быть
Итог: минус один запрос и минус один цикл
Вероломство (04.07.2019 в 13:59)
В виде схема
<?php
<?php foreach ($data_operation as $operation) : ?>
<!--тут вывод операций-->
<?php foreach ($data_mission as $mission) : ?>
<!--тут вывод миссий операций-->
<?php endforeach; ?>
<?php endforeach; ?>
в вид передаётся
<?php
$data_operation = $this->pdo('select * from operations, users_operations where operations.id = users_operations.id_operation && users_operations.id_user = ?', [
$this->id
])->fetchAll(PDO::FETCH_OBJ);
$data_mission = $this->pdo('select * from missions, users_missions where missions.id_operation = ? && missions.id = users_missions.id_mission && users_missions.id_user = ?', [
$data_operation->id,
$this->id
])->fetchAll(PDO::FETCH_OBJ);
$this->set(compact('data_operation', 'data_mission'));
ясен пень косяк: вложенный вид ведь не знает, какой id у следующей итерации родителя
как пофиксить и передать в вид?
А почему бы не сделать одним запросом, а в цикле уже сгруппировать все как должно быть

Итог: минус один запрос и минус один цикл
буду думать
Вероломство, делаешь основной запрос к миссиям и джоин в операции, потом в цикле смотришь, что это операция или миссия и подставляешь нужную вёрстку 
Как различать это, то смотришь на превидущий ид операции, плюс в запросе сортировку по операциям сделай
________
посл. ред. 04.07.2019 в 14:06; всего 1 раз(а); by System

Как различать это, то смотришь на превидущий ид операции, плюс в запросе сортировку по операциям сделай
________
посл. ред. 04.07.2019 в 14:06; всего 1 раз(а); by System
Вероломство, второй вариант, сгруппировать массив, где ключи будут ид операций, а значениям будет массив миссий

DELETED
Автор
4 июля 2019, в 14:11
Delete
System (04.07.2019 в 14:06)
Вероломство, делаешь основной запрос к миссиям и джоин в операции, потом в цикле смотришь, что это операция или миссия и подставляешь нужную вёрстку
Как различать это, то смотришь на превидущий ид операции, плюс в запросе сортировку по операциям сделай
Вероломство, делаешь основной запрос к миссиям и джоин в операции, потом в цикле смотришь, что это операция или миссия и подставляешь нужную вёрстку

Как различать это, то смотришь на превидущий ид операции, плюс в запросе сортировку по операциям сделай
я догнал уже
вроде


DELETED
Автор
5 июля 2019, в 15:39
Delete
<?php
$data_operation = $this->pdo('select * from operations, users_operations where operations.id = users_operations.id_operation && users_operations.id_user = ?', [
$this->id
])->fetchAll(PDO::FETCH_OBJ);
$data_mission = $this->pdo('select * from missions, users_missions where missions.id = users_missions.id_mission && users_missions.id_user = ?', [
$this->id
])->fetchAll(PDO::FETCH_OBJ);
$this->set(compact('data_operation', 'data_mission'));
<?php foreach ($data_operation as $key => $operation) : ?>
<!--вывод операций-->
<?php
$mission_array = [];
foreach ($data_mission as $v) {
if ($v->id_operation == $operation->id)
$mission_array[] = $v;
}
?>
<?php foreach ($mission_array as $mission) : ?>
<!--вывод миссий операций-->
<?php endforeach; ?>
<?php endforeach; ?>
<?php
$data_operation = $this->pdo('select * from operations, users_operations where operations.id = users_operations.id_operation && = ?', [
$this->id
])->fetchAll(PDO::FETCH_OBJ);
$data_mission = $this->pdo('select * from missions, users_operations where missions.id = users_missions.id_mission && users_missions.id_user = ?', [
$this->id
])->fetchAll(PDO::FETCH_OBJ);
$this->set(compact('data_operation', 'data_mission'));
<?php foreach ($data_operation as $key => $operation) : ?>
<!--вывод операций-->
<?php
$mission_array = [];
foreach ($data_mission as $v) {
if ($v->id_operation == $operation->id){
?>
<!--вывод миссий операций-->
<?
}
}
?>
<?php endforeach; ?>
---------
<?php
$data = $this->pdo('select {только то что юзаешь и если дублируется делаешь алиасы} from missions m left join users_operations uo on u.id=uo.id_mission left join operations o on o.id=uo.id_operation where uo.id_user=? order by o.id desc', [
$this->id
])->fetchAll(PDO::FETCH_OBJ);
$lastOpID=0;
foreach($data as $item){
if($item->operation_id!=$lastOpId){
//operations
$lastOpId=$item->operation_id;
}else{
//missions
}
}
________
посл. ред. 05.07.2019 в 16:01; всего 1 раз(а); by System
Вероломство, Два варианта написал тебе
Стр.: 1, 2