On Fri, 29 Aug 2003 07:54:45 -0400, you wrote: >Correct on the brackets - but not on the results still working... The code >I had in the email was just a sample - here is the real code...
Ack. For anyone watching, if you have a problem please post a minimal code snippet that illustrates the problem. Test it before you send. Otherwise you may be wasting the time of anyone who tries to help you. >$res=mysql_query("select distinct dealercode from transactions order by >dealercode",$intranet); >$transactions=Array(); >while($row=mysql_fetch_array($res)) { > $amt=mysql_query("select sum(amount) as total from transactions where >date between '2003-04-01' and '2003-06-31' and >dealercode='$row[dealercode]'",$intranet); > $afftotal=mysql_fetch_array($amt); > >array_push($transactions,$row[dealercode]=>Array("onlineu",$afftotal[total]) >); > $amt=mysql_query("select usercountry,sum(amount) as total from >orders_placed where date between '2003-04-01' and '2003-06-31' and >dealercode='$row[dealercode]' and sent='y' group by usercountry",$intranet); > while($cdtotal=mysql_fetch_array($amt)) { > >array_push($transactions[$row[dealercode]],$cdtotal[usercountry]=>$cdtotal[t >otal]); > } >} Ok, is this a MySQL database? date is a reserved word. "$row[dealercode]" should be "$row['dealercode']", same goes for the other dictionaries. Your code should be throwing a notice on that, which suggests that your error-level is set low and you may be missing other problems. You want a structure like: array ( 33 = array ( 'a' = 52.00 'b' = 53.00 'c' = 54.00 ) 34 = array ( 'a' = 55.00 'b' = 56.00 'c' = 57.00 ) ) What's it supposed to look like when 33=>'a' exists more than once? Is that possible? That array_push looks like a mess. Try something like... $data = array(); for each row in query : $dealerid = $row[0]; $data[$dealerid] = array(); for each subrow in subquery : $country = $subrow[0]; $amount = $subrow[1]; $data[$dealerid][$country] = $amount; >And as for your offline suggestion of putting it into one query - I did try >that first of course, but due to the large amount of data, and the shoddy >nature of the database design (inherited not built) the query times out. >This atleast returns within 1 min with the data when I can retrieve it :) Do you have a seperate dealer table? You're pulling "SELECT DISTINCT dealercode FROM transactions", which is odd. Somewhere you may have a table where dealername is associated with dealercode. That's what you should be doing the join against. If I were you I'd ask on a database-specific mailing list, because it's never faster to do it in software when you can push it all up into the database instead. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php