1

これを解決するのを手伝ってもらえますか? 私のelseステートメントの更新クエリは実行されていませんが、ifステートメントで機能しています。これがコードです。

        while($qtytoAdd > 0) {
    $remBalance = mysql_result(mysql_query('SELECT `est_qty` - `qty_rec` as balance FROM `estimates` WHERE `proj_id` = "'.$proj_id.'" AND `mat_id` = "'.mat_id_from_mat_desc($materials).'" AND `qty_rec` <> `est_qty` ORDER BY `item_id` ASC'), 0);
    $balid = mysql_result(mysql_query('SELECT `est_id` FROM `estimates` WHERE `proj_id` = "'.$proj_id.'" AND `mat_id` = "'.mat_id_from_mat_desc($materials).'" AND `qty_rec` <> `est_qty` ORDER BY `item_id` ASC'), 0);
    $currRec = mysql_result(mysql_query('SELECT `qty_rec` FROM `estimates` WHERE `proj_id` = "'.$proj_id.'" AND `mat_id` = "'.mat_id_from_mat_desc($materials).'" AND `qty_rec` <> `est_qty`'), 0);
    $currid = mysql_result(mysql_query('SELECT `req_id` FROM `requestdetails` JOIN `request` USING(`req_id`) WHERE `proj_id` = "'.$proj_id.'" AND `mat_id` = "'.mat_id_from_mat_desc($materials).'" AND `req_qty` <> `current_rec_qty` ORDER BY `req_id` ASC'), 0);

        if(($remBalance - $qtytoAdd) >= 0) {
            mysql_query('UPDATE `estimates` SET `qty_rec` = `qty_rec` + "'.$qtytoAdd.'" WHERE `proj_id` = "'.$proj_id.'" AND `mat_id` = "'.mat_id_from_mat_desc($materials).'" AND `est_id` = "'.$balid.'"');
                $qtytoAdd = 0;
        mysql_query('UPDATE `estimates` SET `qty_onhand` = `qty_rec` - `qty_rel` WHERE `proj_id` = '.$proj_id.' AND `qty_rec` <> `est_qty` AND `mat_id` = '.mat_id_from_mat_desc($materials).' AND `est_id` = '.$balid.'');
            } else {
                mysql_query('UPDATE `estimates` SET `qty_rec` = "'.$remBalance.'" + "'.$currRec.'" WHERE `proj_id` = "'.$proj_id.'" AND `mat_id` = "'.mat_id_from_mat_desc($materials).'" AND `est_id` = "'.$balid.'"');
                $qtytoAdd = $qtytoAdd - $remBalance;
        mysql_query('UPDATE `estimates` SET `qty_onhand` = `qty_rec` - `qty_rel` WHERE `proj_id` = '.$proj_id.' AND `qty_rec` <> `est_qty` AND `mat_id` = '.mat_id_from_mat_desc($materials).' AND `est_id` = '.$balid.'');
            }
        }

何が問題なのかよくわかりません。私が話しているクエリはこれです:

mysql_query('UPDATE `estimates` SET `qty_onhand` = `qty_rec` - `qty_rel` WHERE `proj_id` = '.$proj_id.' AND `qty_rec` <> `est_qty` AND `mat_id` = '.mat_id_from_mat_desc($materials).' AND `est_id` = '.$balid.'');
4

3 に答える 3

0

これを試して

      else {
            mysql_query('UPDATE `estimates` SET `qty_rec` = "'.$remBalance + $currRec.'" WHERE `proj_id` = "'.$proj_id.'" AND `mat_id` = "'.mat_id_from_mat_desc($materials).'" AND `est_id` = "'.$balid.'"');

    mysql_query('UPDATE `estimates` SET `qty_onhand` = `qty_rec` - `qty_rel` WHERE `proj_id` = '.$proj_id.' AND `qty_rec` <> `est_qty` AND `mat_id` = '.mat_id_from_mat_desc($materials).' AND `est_id` = '.$balid.'');
        }
        $qtytoAdd = $qtytoAdd - $remBalance;
    }

編集。

クエリをこれに置き換えてみてください

 mysql_query('UPDATE `estimates` SET `qty_onhand` = `qty_rec` - `qty_rel` WHERE `proj_id` = "'.$proj_id.'" AND `qty_rec` <> `est_qty` AND `mat_id` = "'.mat_id_from_mat_desc($materials).'" AND `est_id` = "'.$balid.'"');
于 2013-02-01T15:07:47.330 に答える
0

elseステートメント内で機能しない場合は、クエリをエコーし​​てから、そのクエリをコピーしてクエリアナライザまたはphpmyadminに貼り付け、実行されるかどうかを確認してください。このようなもの:

  else {
      $query="enter your query here";
      echo $query;
      mysql_query($query);
  }

ブラウザでクエリを印刷した後、どのクエリが実行されているかを知り、それが正しいかどうかを確認します。ある程度のデバッグスキルが必要

于 2013-02-01T14:59:27.537 に答える
-1

私は同じ問題に直面しました.elseループで関数を使用するとうまくいきます

else
{
    $update_function=update_function($ud_id,$subject,$to_user,$from_user);
    [//pass your variables instead of $ud_id,$subject,$to_user,$from_user]
}

function update_function($ud_id,$subject,$to_user,$from_user)
{               
    //place your query over here    
    $query=mysql_query("UPDATE `email_configuration` SET `subject`='$subject',`to_user`='$to_user',`from_user`='$from_user' WHERE id='$ud_id'");    
    echo "Record Updated";                              
}
于 2015-11-05T21:43:07.300 に答える