|
Posted by Gordon Burditt on 04/25/06 09:21
>A bunch of small things are frustrating me in trying to do some simple
>stuff with MySQL and php.
>
>For example, I have am trying to sum the data in a particular field,
>then output the result.
>
>Here is the sequence I'm using in php to do so:
>
>$dataquery="SELECT SUM(".$current_year.") FROM Donors WHERE Source LIKE
>'%FF%'";
>$result=mysql_query($dataquery);
>$rowdata=mysql_fetch_row($result);
>$datatotal=$rowdata[0];
>
>Donors is of course the name of the table, $current_year is a variable
>that is correctly 2006 (I've echoed it to make sure), and I'm looking
>for the total of data in field 2006 where the associated field Source
>contains the letters FF somewhere.
Your query is:
SELECT SUM(2006) FROM Donors WHERE Source LIKE '%FF%';
In this context, 2006 is a *NUMBER*. `2006` is a field.
I advise not naming fields so they look like numbers.
>However, the result is displaying as 62186
This is 31 * 2006.
>when in fact it's 300.
>Even if I use phpmyadmin and enter the query directly [SELECT SUM(2006)
>FROM Donors WHERE Source LIKE '%FF%'], the result comes back
>incorrectly, again 62186 instead of the expected 300.
You should not be expecting 300 here.
>So what am I doing wrong? The field 2006, which can hold values between
>0 and 999,999, is defined as an INT 6. If I do the MySQL command
>[SELECT FROM Donors WHERE Source LIKE '%FF%'] I do see just a small
>number of rows, and the total in the fields 2006, computed in my head,
>is 300.
Gordon L. Burditt
Navigation:
[Reply to this message]
|