PDA

View Full Version : سوال: جمع و تفريق بين ركوردها



ravand
دوشنبه 19 دی 1390, 11:19 صبح
سلام
ميخوام برنامه اي بنويسيم كه اعدادي كه وارد هر ركورد از جدول ميشه رو از هم كم كنه بعد با ركورد بعدي جمع كنه.
مثلا من توي يكي از ركوردها عدد 9 و 14 را وارد كردم و در ركورد بعدي 10 و 15 . ميخوام عدد 9 از 14 كم بشه و 10 هم از 15 كم بشه بعد نتيحه ي هر دو تا ركورد با هم جمع بشه. و همين موضوع براي ركوردهاي بعدي هم به طور خودكار اتفاق بيوفده.
متشكرم.

dousti_design
دوشنبه 19 دی 1390, 11:38 صبح
آخرین رکورد و یکی مونده به آخر باید سلکت بشن.



select * from table order by id desc limit 2


حالا از نتیجه این کوئری میتونید برای جمع کردن فیلدهای مربوط به 2رکورد آخر استفاده کنید

MMSHFE
دوشنبه 19 دی 1390, 12:16 عصر
SELECT SUM(`field1`-`field2`) AS `sum` FROM `table`

ravand
دوشنبه 19 دی 1390, 13:10 عصر
SELECT SUM(`field1`-`field2`) AS `sum` FROM `table`



ببخشيد ميشه يه مثال عملي براي اين بزنيد. مثلا ما مقاديري كه به ديتابيس ارسال شده رو ميخوام چاپ كنيم قبل از اينكه چاپ كنيم ميخوايم اين كارا رو باهاش بكنيم . به كد زير نگاه كنيد:

<?php
$servername="localhost";
$dbname="date";
$user="root";
$pass="";
$dblink=mysql_connect($servername,$user,$pass);
mysql_select_db($dbname,$dblink);
mysql_query("SET CHARACTER SET utf8",$dblink);
$dbresult=mysql_query("SELECT * FROM times",$dblink);
while($record=mysql_fetch_assoc($dbresult))
{
$id=$record['id'];
$s1=$record['s'];
$s2=$record['s2'];
$d1=$record['d'];
$d2=$record['d2'];
}
mysql_close($dblink);
?>

ميخوام مقدار فيلد s با s2 در يك ركورد از هم تفريق بشه بعد با ركورد بعدي جمع بشه. چطوري بايد اين كار رو بكنم؟

MMSHFE
دوشنبه 19 دی 1390, 15:48 عصر
فرض کنید فیلدهای شما id و s و s2 و d و d2 هست و میخواین مجموع s-s2 رو در تمام رکوردها حساب کنید:


$servername = 'localhost';
$dbname = 'date';
$user= 'root';
$pass = '';
mysql_connect($servername, $user, $pass) or die('Connection error');
mysql_select_db($dbname) or die('Database error');
mysql_query('SET NAMES \'utf8\'');
$result = mysql_query('SELECT * FROM `times`');
$sum = 0;
while($row = mysql_fetch_assoc($result)) {
$sum += ($row['s'] - $row['s2']);
}

موفق باشید.