2014-09-29 2 views
0

Эй, ребята мне нужна помощь с ассоциативным массивомАссоциативный массив между двумя таблицами MySQL и для каждого цикла

Вот что у меня есть.

У меня есть две таблицы mysql, называемые пользователями ... Настройка вроде этого.

 
[ MYSQL DB users] 
*************************************** 
Id------name-------empnum------amount 
1 ------testa------123456------40.00 
2 ------testb------652526------300.00 
3 ------Testc------919825------100.00 
4 ------Testd------354694------50.00 

И другой db настроен следующим образом.

 
[ MYSQL DB po ] 
*************************************** 
Id------ponum------reason----empnum---------total------reason 
1 ------1234------testa------123456---------40.00------Demo 
2 ------1235------testb------652526--------300.00------Demo 
3 ------1236------Testc------919825--------100.00------other 
4 ------1237------Testd------123456---------50.00------Demo 

Что мне нужно сделать, это выбрать каждого пользователя от «Пользователи» дб, а затем найти их в «Ро» дб

Тогда мне нужно сложить в общей сложности они потратили (ДДУ) и сравните его с количеством от пользователей db.

У меня есть эта диаграмма javascript, которую я хотел бы показывать рядом с именем каждого человека, чтобы показать им, как близко к 100% они потратили.

<div id="progressBar<? echo $id; ?>" class="default"><div></div></div> 
    <script> 
     progressBar(<?php echo round(($sum/$total) * 100); ?>, $('#progressBar<? echo $id; ?>')); 
    </script> 

Мой вопрос Как я идти об этом. Моя первая мысль состояла в том, чтобы использовать ассоциативный массив и получить количество и empnum от пользователей, а затем вытащить эту информацию из mysql, а затем сравнить это с суммой .... Некоторые, где между точками a и b я теряюсь. У меня нет большого понимания того, как A-массив работает с mysql и двумя таблицами. из того, что я нашел, похоже, что мне придется использовать для каждого цикла. Я иду об этом неправильно. Есть ли более простой способ ???

ответ

1

Вы можете сделать большинство из них в одном запросе:

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']; 
+0

хмм я не использовал левое соединение раньше. Что было бы в u.amount и p в p.total – Kelly

+0

+1, пусть база данных будет делать то, что она должна, нет необходимости, чтобы приложение выполняло это во время цикла. «u» является псевдонимом для пользователей, а «p» является псевдонимом для po: 'FROM users u LEFT JOIN po p' –

+0

Извините @sammithc, вы ошибаетесь, имя db po должно быть fpo, вот что у меня сейчас нет шва для работы .'code ' "; } ?> – Kelly

Смежные вопросы