从mysql中提取数据

时间:2014-06-24 16:15:17

标签: php mysql sql arrays

我在MYSQL中有一个表,可以跟踪不同成分的使用情况。每次使用一种成分时都会创建一个新条目,一个成分可以有多个条目" usage"我试图显示减去使用数量的起始数量。这些值被放入数组中。如何减去多个"使用的数量"来自单个"起始数量的条目"条目? 我尝试在while循环中添加最后两行代码,以为我可以添加使用量,但这会将所有成分的所有用法加起来而不是特定成分。

    $query = "SELECT lkptblMatInvStorageLocs.StorageLoc, tblMatInv.Quantity, tblMatInv.Status, ".
    "tblMatInv.Note, tblMatInvCategory.MatCat, tblMatInvList.Name, tblMatInvList.Specs, ".
    "tblMatInvList.Note As Note1, tblMatInvUsage.QuantityUsed, lkptblMatInvUnit.Unit, ".
    "tblMatInv.MI_id, tblMatInvList.VendPtNum, tblVendor.Vendor, tblMatInv.BatchNum, tblMatInvUsage.DT ".
    "From lkptblMatInvStorageLocs  ".
    "Inner Join tblMatInv On lkptblMatInvStorageLocs.MISL_id = tblMatInv.MISL_id ".
    "Inner Join tblMatInvList On tblMatInv.MIL_id = tblMatInvList.MIL_id ".
    "Inner Join lkptblMatInvUnit On lkptblMatInvUnit.MIU_id = tblMatInvList.MIU_id ".
    "Inner Join tblVendor On tblVendor.VEND_id = tblMatInvList.VEND_id ".
    "Inner Join tblMatInvCategory On tblMatInvCategory.MIC_id = tblMatInvList.MIC_id ".
    "Inner Join tblMatInvUsage On tblMatInvUsage.MI_id = tblMatInv.MI_id ".
    "$cstring ".
    "GROUP BY tblMatInv.MI_id ".
    "Order By tblMatInv.MI_id Desc ".
    "LIMIT $num_records";


if ($show_query == 1) print "<font size=\"-2\">".$query."</font><br>\n";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
$rec_count = 0;
$inventory_data_arr = array();          
while ($temp_inventory_data = mysql_fetch_row($result)) 
{       
            // Stuff usage data into data array.
    $inventory_data_arr[$rec_count]["location"] = $temp_inventory_data[0];              
    $inventory_data_arr[$rec_count]["quantity"] = $temp_inventory_data[1];
    $inventory_data_arr[$rec_count]["status"] = $temp_inventory_data[2];
    $inventory_data_arr[$rec_count]["note"] = $temp_inventory_data[3];
    $inventory_data_arr[$rec_count]["category"] = $temp_inventory_data[4];      
    $inventory_data_arr[$rec_count]["name"] = $temp_inventory_data[5];
    $inventory_data_arr[$rec_count]["specs"] = $temp_inventory_data[6];
    $inventory_data_arr[$rec_count]["note1"] = $temp_inventory_data[7];     
    $inventory_data_arr[$rec_count]["quantity_used"] = $temp_inventory_data[8];
    $inventory_data_arr[$rec_count]["unit"] = $temp_inventory_data[9];      
    $inventory_data_arr[$rec_count]["MI_id"] = $temp_inventory_data[10];        
    $inventory_data_arr[$rec_count]["VendPtNum"] = $temp_inventory_data[11];
    $inventory_data_arr[$rec_count]["vendor"] = $temp_inventory_data[12];       
    $inventory_data_arr[$rec_count]["BatchNum"] = $temp_inventory_data[13];
    $inventory_data_arr[$rec_count]["date"] = $temp_inventory_data[14];         
    $rec_count++;
    $complete_starting_quantity = $complete_starting_quantity + $temp_inventory_data[1];
    $complete_quantity_used = $complete_quantity_used + $temp_inventory_data[8];
    //print_r($temp_inventory_data);
}

    for($i= 0; $i <$rec_count; $i++) {
        $starting_quantity = $inventory_data_arr[$i]["quantity"];
        $ending_quantity = $inventory_data_arr[$i]["quantity_used"];
        $remaining_quantity = $starting_quantity - $ending_quantity;

        if ($inventory_data_arr[$i]["status"] == 'Finished'){
        $inventory_data_arr[$i]["quantity_used"] = $inventory_data_arr[$i]["quantity"];
        $remaining_quantity = 0;
        }

0 个答案:

没有答案