У меня есть две таблицы, названные Ingredient и Amount. Каждый ингредиент имеет столбец отношений, называемый суммами, который может содержать один или несколько объектов количества.
То, что я пытаюсь сделать, это собрать все ингредиенты в цикле, а затем получить суммы для всех этих ингредиентов. Однако я заметил, что когда я использую запрос для получения сумм, то это сильно замедляет процесс, и я не могу получить суммы для всех ингредиентов (900+), сервер просто отключается.
Есть ли способ, которым я могу получить все суммы для определенного ингредиента, не делая ни секунды для цикла?
В конечном итоге я хотел бы вернуть все ингредиенты вместе с их количеством.
Вот код
try {
$query = new ParseQuery("Ingredient");
$query->descending("name");
$query->limit(1000);
$results = $query->find();
for ($i = 0; $i < count($results); $i++) {
$object = $results[$i];
$ingredient = new Ingredient($object->getObjectId(), $object->get('name'), $object->get('category'), $object->get('KH'), $object->get('EW'),
$object->get('FE'), $object->get('ALK'), $object->get('amounts')->_encode());
array_push($old_values_array, $ingredient);
$relation = $object->get('amounts');
$query1 = $relation->getQuery();
$results1 = $query1->find();
for ($j = 0; $j < count($results1); $j++) {
//echo "Got here in loop 2";
$object2 = $results1[$j];
$id = $object2->getObjectId();
$name = $object2->get('name');
$grams = $object2->get('grams');
$amount = new Amount($id, $name, $grams);
array_push($amounts_array, $amount);
}
}