Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:从另一个表获取数据时更新产品表数量_Php_Mysql - Fatal编程技术网

PHP:从另一个表获取数据时更新产品表数量

PHP:从另一个表获取数据时更新产品表数量,php,mysql,Php,Mysql,我在更新从invoiceitem表中提取的数据以更新产品表数量时遇到问题 此问题只是我循环中更新的第一条记录 请帮助我将多个项目值更新到数据库 这是我的密码: <?php $stuid = $_GET['id']; global $con; $stu_query = "SELECT * FROM invoiceorder INNER JOIN invoiceorderitem ON invoiceorder.InvoId = invoiceo

我在更新从invoiceitem表中提取的数据以更新产品表
数量
时遇到问题

此问题只是我循环中更新的第一条记录

请帮助我将多个项目值更新到数据库

这是我的密码:

<?php



$stuid = $_GET['id'];
global $con;

                    $stu_query = "SELECT * FROM invoiceorder INNER JOIN invoiceorderitem ON invoiceorder.InvoId = invoiceorderitem.InvoId WHERE invoiceorder.InvoId ='$stuid'";

                    $stu_run = mysqli_query($con,$stu_query);


                    while($sorows = mysqli_fetch_array($stu_run)){
                        $Date = $sorows['Date'];
                        $SalesPerson = $sorows['SalesPerson'];
                        $Telephone = $sorows['Telephone'];                              
                        $Customer = $sorows['Customer'];                                
                        $CurrentPayment = $sorows['CurrentPayment'];                                
                        $Balance = $sorows['Balance'];                              

                        $Item_Id = $sorows['Item_Id'];
                        $ItemDescription = $sorows['ItemDescription'];
                        $UnitPrice = $sorows['UnitPrice'];
                        $Quantity = $sorows['Quantity'];
                        $SubTotal = $sorows['SubTotal'];
                        $Total = $sorows['Total'];

                     $sea_res = mysqli_query($con, "SELECT * FROM bincard WHERE BinId = $Item_Id");

                                        while ($resresults = $sea_res->fetch_assoc()){

                                            $BinId = $resresults['BinId'];
                                            $ItemName = $resresults['ItemName'];
                                            $QtyBalance = $resresults['QtyBalance'];
                                            $QtyIssued = $resresults['QtyIssued'];

                                            //chech this
                                            $newqty=0;
                                            $isuqty=0;

                                            $newqty =$QtyBalance - $Quantity;
                                            $isuqty = $QtyIssued + $Quantity;
                                            $insert_query = "UPDATE bincard SET QtyBalance='$newqty',QtyIssued='$isuqty' WHERE BinId = $Item_Id";
                                        }
                                        if ($con->query($insert_query) === TRUE) 
                        {
                            echo"<script>alert(' Updated Successfully')</script>";
                            echo"<script>window.open('invoiceprint.php','_self')</script>";
                        } else 
                        {
                            echo "Error: " . $insert_query . "<br>" . $con->error;
                        }



                        $con->close();
                    }







?>
if($con->query($insert\u query)===TRUE)
放入
while
循环中。如果只更新一条记录,则
$sea\u res->fetch\u assoc()
中只有一条记录

while ($resresults = $sea_res->fetch_assoc()){

    $BinId = $resresults['BinId'];
    $ItemName = $resresults['ItemName'];
    $QtyBalance = $resresults['QtyBalance'];
    $QtyIssued = $resresults['QtyIssued'];

    //chech this
    $newqty=0;
    $isuqty=0;

    $newqty =$QtyBalance - $Quantity;
    $isuqty = $QtyIssued + $Quantity;
    $insert_query = "UPDATE bincard SET QtyBalance='$newqty',QtyIssued='$isuqty' WHERE BinId = $Item_Id";

    if ($con->query($insert_query) === TRUE) 
    {
        echo"<script>alert(' Updated Successfully')</script>";
        echo"<script>window.open('invoiceprint.php','_self')</script>";
    } else{
        echo "Error: " . $insert_query . "<br>" . $con->error;
    }
}
while($resresresults=$sea\u res->fetch\u assoc()){
$BinId=$resresresults['BinId'];
$ItemName=$resresresults['ItemName'];
$QtyBalance=$resresresults['QtyBalance'];
$QtyIssued=$resresults['QtyIssued'];
//查查这个
$newqty=0;
$isuqty=0;
$newqty=$QtyBalance-$Quantity;
$isuqty=$qtysuited+$Quantity;
$insert_query=“更新bincard集合QtyBalance='$newqty',QtyIssued='$isuqty',其中BinId=$Item_Id”;
如果($con->query($insert\u query)==TRUE)
{
回显“警报(‘已成功更新’)”;
echo“window.open('invoiceprint.php','u self');
}否则{
echo“Error:”.$insert\u query.“
”$con->Error; } }
嘿,欢迎来到堆栈溢出。这只是一个友好的提醒,您的代码容易受到MySQL注入的攻击。您应该考虑使用此代码,因为您的代码失败,因为您的<代码>如果($CON->查询($插入tQueue)==true)位于while循环之外,则应考虑使用此代码。在while循环中移动if station块,它将插入完整的数组。
此问题只是第一条记录正在更新。
实际上不正确;它实际上只是在更新最后一条记录。只是吹毛求疵而已@不。。!只有第一条记录正在更新其他数据跳过。谢谢你,嗯,你可以通过运行
print\r($sea\u res)
再次检查这一点
$insert\u query
在每次循环期间都会被设置,只有在循环完成后,您才能运行SQL查询命令。。因此,最后一条数据正在更新,而不是第一条数据。因为第一个在很久以前就被覆盖了。。。但这不是问题的重点。希望您设法解决了问题。如果如您所说,它只更新一条记录,其中上次保存的
$item\u id
变量仅获取1个值。。。。那么问题应该出现在我的第一个while循环和没有保存多个数据的变量中。请检查我的第一个while循环。谢谢你和我在一起