Эй, ребята, мне нужна помощь с ассоциативным массивом
Вот что у меня есть.
У меня есть две таблицы MySQL, один из которых называется пользователи … Настройка, как это.
[Пользователи базы данных MYSQL] *************************************** Id ------ имя ------- ------ empnum сумма 1 ------ testa ------ 123456 ------ 40.00 2 ------ testb ------ 652526 ------ 300.00 3 ------ Testc ------ 919825 ------ 100.00 4 ------ Testd ------ 354694 ------ 50.00
А другой БД настроен так.
[MYSQL DB po] *************************************** Id ------ ponum ------ причина ---- empnum --------- ------ общая причина 1 ------ 1234 ------ testa ------ 123456 --------- 40.00 ------ Демонстрация 2 ------ 1235 ------ testb ------ 652526 -------- 300.00 ------ Демонстрация 3 ------ 1236 ------ Testc ------ 919825 -------- 100.00 ------ другое 4 ------ 1237 ------ Testd ------ 123456 --------- 50.00 ------ Демонстрация
Что мне нужно сделать, это выбрать каждого пользователя из базы данных «Users», а затем найти их в базе данных «Po»
Затем мне нужно сложить общую сумму, которую они потратили (в ПО) и сравнить ее с суммой от дБ пользователей.
У меня есть эта гистограмма javascript, которую я хотел бы отобразить рядом с именами каждого человека, чтобы показать им, насколько близко они потратили 100%.
<div id="progressBar<? echo $id; ?>" class="default"><div></div></div>
<script>
progressBar(<?php echo round(($sum/$total) * 100); ?>, $('#progressBar<? echo $id; ?>'));
</script>
Мой вопрос
Как мне это сделать? Моей первой мыслью было использовать ассоциативный массив и получать количество и значение от пользователей, а затем извлекать эту информацию из mysql, а затем сравнивать ее с итоговыми значениями. В некоторых местах между точками a и b я теряюсь. Я не очень хорошо понимаю, как работает A-массив с mysql и двумя таблицами.
из того, что я обнаружил, похоже, мне придется использовать для каждого цикла. ??
Я иду по этому пути неправильно .. Есть ли более простой способ ???
Вы можете сделать большую часть этого в одном запросе:
SELECT u.amount, SUM(p.total) 'po_total'
FROM users u LEFT JOIN po p
ON u.empnum = p.empnum
GROUP BY p.empnum
А потом:
$percentage = $row['po_total'] / $row['amount'];
Других решений пока нет …