私はそのようなクエリを持っています:
$sql = "UPDATE test_accs SET
acc_owner = '$owner_id',
acc_policy_version = '$version',
acc_policy_last_update = '$approved',
acc_policy_next_update = '$renewed'
WHERE acc_id = '1'";
現在、Web形式上のこれらの値はすべてオプションであり、これらの値の1つ、2つなどを設定できます。フォームを送信すると、次のようなクエリになります。
UPDATE test_accs SET acc_owner = '2', acc_policy_version = '1.2', acc_policy_last_update = '2012-12-19', acc_policy_next_update = '2012-12-18' WHERE acc_id = '1'
フォームからすべての値を送信した場合にのみ機能します。すべての値が送信されていない場合でも、たとえば1つの値だけが送信された場合でも、どのように機能するかを教えてください。
1つの値(ポリシーバージョンなど)を設定すると、次のようになります。
UPDATE test_accs SET acc_owner = '', acc_policy_version = '1.2', acc_policy_last_update = '', acc_policy_next_update = '' WHERE acc_id = '1'
そしてそれは機能していません。
acc_ownerテーブルの値が原因である可能性がありますか?
#1366 - Incorrect integer value: '' for column 'acc_owner' at row 1
アドバイスありがとうございます。
形:
echo '<td>Change owner: <select name="owner_id" onchange="showUser(this.value)" style="font-size:9px"><option value="">Select a person:</option>';
while($owners = mysql_fetch_array($owners_query)) { echo '<option value="'.$owners['id'].'">'.$owners['surname'].' '.$owners['name'].'</option></h2>'; } echo '</select></td>';
echo "<td><input name='version' style='width:50px;text-align:center' placeholder='0.0' /></td>";
echo "<td><input name='approved' class='datepicker_all' readonly='readonly' style='text-align:center' placeholder='1999-01-01' /></td>";
echo "<td><input name='renewed' class='datepicker_all' readonly='readonly' style='text-align:center' placeholder='1999-01-01' /></td>";