为了账号安全,请及时绑定邮箱和手机立即绑定

更新行而不是添加新行

更新行而不是添加新行

PHP
Helenr 2021-12-24 09:47:46
我的问题是我想更新该行,但是当我编辑该行时,它会添加新行并且一些数据不会检索回数据库。有谁知道我错过了什么?我应该添加一些循环吗?我正在使用按钮提交,在按钮提交中,我只想要同一行的函数 editGroup(更新)。这意味着,用户可以编辑行并单击按钮提交并更新行。PHP更新function editGroup(){global $ehorsObj;$employeeID = $_SESSION['employeeID'];$propertyID = $_SESSION['propertyID'];$accountID        = (isset($_POST['accountID']) ? $_POST['accountID'] : '');$accountLedgerID  = (isset($_POST['accountLedgerID']) ? $_POST['accountLedgerID'] : '');$accountNo        = (isset($_POST['accountNo']) ? $_POST['accountNo'] : '');$accountName      = (isset($_POST['accountName']) ? $_POST['accountName'] : '');//$accountMain    = (isset($_POST['accountMain']) ? $_POST['accountMain'] : '');$openingBalance   = (isset($_POST['openingBalance']) ? $_POST['openingBalance'] : '');$openingBalanceDate = (isset($_POST['openingBalanceDate']) ? $_POST['openingBalanceDate'] : '');$selectable       = (isset($_POST['selectable']) ? $_POST['selectable'] : '');$popUp            = (isset($_POST['popUp']) ? $_POST['popUp'] : '');$accountChar      = (isset($_POST['accountChar']) ? $_POST['accountChar'] : '');$active           = (isset($_POST['active']) ? $_POST['active'] : '');$sqlCount   =   "SELECT COUNT(*) AS TOTAL FROM tblAccAccounts                 WHERE accountID = '" . $accountID . "'";$GetResult = $ehorsObj->FetchData($sqlCount, $ehorsObj->DEFAULT_PDO_CONNECTIONS);while ($row = $GetResult->fetch()){    $total = $row ['TOTAL'];}有人对此有意见吗?
查看完整描述

1 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

要更新表的行,您只需要执行UPDATE查询,INSERT之后无需使用。


这意味着不需要使用这部分代码


accountID= $ehorsObj->EHORS_PK(tblAccAccounts);

$sqlAdd     =   "INSERT INTO tblAccAccounts

                SET accountID = '" . $accountID . "',

                accountLedgerID = '" . $accountLedgerID . "',

                accountNo = '" . $accountNo . "',

                accountName = '" . $accountName . "',

                openingBalance = '" . $openingBalance . "',

                openingBalanceDate = '" . $openingBalanceDate . "',

                selectable = '" . $selectable . "',

                popUp = '" . $popUp . "',

                accountChar = '" . $accountChar . "', 

                active = 'y',   

                employeeID = '" . $employeeID . "',                         

                propertyID = '" . $propertyID . "',                         

                dateTimeEmployee = NOW() ";     


$ehorsObj->ExecuteData($sqlAdd, $ehorsObj->DEFAULT_PDO_CONNECTIONS);    } 

此外,如果你想(你应该是)INSERT一个新行,如果表中没有现有行,你应该只在对表执行检查后才这样做。


例如 :


$sql=mysqli_query($conn, "SELECT * FROM tblAccAccounts WHERE AccountID = $accountID");


if (mysqli_num_rows($sql) > 0) // table returned some rows

{

    $sqlUpdate= <YOUR UPDATE COMMAND HERE>;

    mysqli_query($conn,$sqlUpdate);


 else { // no such row exists.

    $sqlInsert=<YOUR INSERT COMMAND HERE>;

    mysqli_query($conn,$sqlInsert);

}


查看完整回答
反对 回复 2021-12-24
  • 1 回答
  • 0 关注
  • 173 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号