0

私は何時間もこれに取り組んできましたが、何も機能していません。

スーパーバイザーの承認が必要な請求書が動的に入力されるテーブルがあります。スーパーバイザーが [すべて承認] ボタンをクリックして、各請求書 (MySQL テーブルに独自の一意のジョブ ID を持つ) のスーパーバイザーの ID で MySQL テーブルの列を更新できるようにしようとしています。

各ジョブ ID を配列に配置する while ループ、各 ID を挿入して「get」を使用して別のページに渡すループ、およびその他の非常に複雑な解決策などを試しました。

私が見逃しているこれを行う簡単な方法があるようです。

何も機能していないため、表示するコードは多くありませんが、テーブルを更新するクエリを次に示します。これは、単一の請求書を承認するために使用しているものです。必要なのは、ページに表示されるすべての請求書を承認する機能です。

UPDATE ジョブ SET job_approverid2='".$approverid."' WHERE job_id = '".$jobid."'

4

3 に答える 3

0

複数の行が更新されます。複数のjob_idがあると想定しています。

$jobid = implode(',' ,$_POST['jobid']); // just example

UPDATE jobs SET job_approverid2='".$approverid."' WHERE job_id IN (".$jobid.");
于 2013-01-24T07:14:14.810 に答える
0

私はこれがうまくいくかもしれないと思う

"UPDATE jobs SET job_approverid2='".$approverid."' WHERE job_id = '".$jobid."' and job_approverid2!='".$approverid"'" 

または、このようにすることができます

すべてのジョブ ID を配列として取得します ( $jobId[]としましょう)。ここで、job_approverid2!=$approverid

それで

foreach($jobId[] as $job_id) {
 "UPDATE jobs SET job_approverid2='".$approverid."' WHERE job_id = '".$job_id."'"
}
于 2013-01-24T07:29:45.703 に答える
0

まあ、UPDATE条件付きの単純なものでそれを行う必要があります:

UPDATE invoices SET approved = 1 WHERE .. condition ..

..条件..は、次のようにどの請求書が承認されるかを決定します。

UPDATE invoices SET approved = 1 WHERE approved = 0

承認されていないすべての請求書を承認するため。もちろん、WHERE条項はより複雑になる可能性があります。たとえば、監督者が次のものを持つすべての請求書を更新する場合などid = 23です。

UPDATE invoices SET approved = 1 WHERE approved = 0 AND supervisor_id = 23

したがって、アプリケーション レベルでは、上記のクエリを実行するページを作成するだけで済みます。次のような URL が含まれる場合があります。

http://example.com/invoices/approve_all.php?supervisor=23
于 2013-01-24T06:36:47.427 に答える