Jump to content

Archived

This topic is now archived and is closed to further replies.

shaunk

Field Calculation

Recommended Posts

Hopefully this is easy for womeone else:-

I've recently set up a database that contains a numbet of fields, say for arguments sake they are field1, field2, field3 etc....

Want I want to do is make field5 equal a value of the latest value entered in field1 minus the first value entered in field1.

ie: in the column field1 the first or starting entery is say 50 and as users interact with the database this value increases dependant on user input (don't worry about why) so the last value in column field1 could be say 65. I want to calculate the difference (15) and enter it into a new field.

I seem to be running in to problems with a syntax or something because I've tried many combinations like the following:-

<?php $firstvalue = SELECT field1 FROM databasename ORDER BY field1 ASC LIMIT 1 ;
$secondvalue = SELECT field1 FROM databasename ORDER BY field1 DESC LIMIT 1 ;
$valuerequired = $secondvalue - $firstvalue
echo "$valuerequired" ?>

Any help will be much appriciated I've run out of ideas.

Thanks Shaun

Share this post


Link to post
Share on other sites
you're close, but when you simply do a query, it returns a reference to the results, not the results themselves. so, you'd need to do this:
[code]
$first = mysql_result(mysql_query("SELECT field1 FROM tableName ORDER BY field1 ASC LIMIT 1"), 0, 'field1');
$last = mysql_result(mysql_query("SELECT field1 FROM tableName ORDER BY field1 DESC LIMIT 1"), 0, 'field1');

echo ($last - $first);
[/code]

Share this post


Link to post
Share on other sites
If the values always increase you could use a single query

[code]$result = mysql_query ("SELECT MIN(field1) as first, MAX(field1) as last FROM tablename");

echo mysql_result($result, 0, 'last') - mysql_result($result, 0, 'first');[/code]

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.