Я не уверен, как решить эту проблему, которая смущала меня в течение нескольких дней. У меня есть форма, которая обновляет запись пользователя в MySQL, когда флажок установлен. Вот как моя форма делает это:
if (isset($_POST['Update'])) {
$paymentr = $_POST['paymentr']; //put checkboxes array into variable
$paymentr2 = implode(', ', $paymentr); //implode array for mysql
$query = "UPDATE transactions SET paymentreceived=NULL";
$result = mysql_query($query);
$query = "UPDATE transactions SET paymentdate='0000-00-00'";
$result = mysql_query($query);
$query = "UPDATE transactions SET paymentreceived='Yes' WHERE id IN ($paymentr2)";
$result = mysql_query($query);
$query = "UPDATE transactions SET paymentdate=NOW() WHERE id IN ($paymentr2)";
$result = mysql_query($query);
foreach ($paymentr as $v) { //should collect last updated records and put them into variable for emailing.
$query = "SELECT id, refid, affid FROM transactions WHERE id = '$v'";
$result = mysql_query($query) or die("Query Failed: ".mysql_errno()." - ".mysql_error()."<BR>\n$query<BR>\n");
$trans = mysql_fetch_array($result, MYSQL_ASSOC);
$transactions .= '<br>User ID:'.$trans['id'].' -- '.$trans['refid'].' -- '.$trans['affid'].'<br>';
}
}
К сожалению, тогда он обновляет ВСЕ записи пользователей с самой последней датой, а это не то, чего я хочу. Альтернатива, о которой я подумал, заключалась в том, чтобы через Javascript дать флажку значение, которое будет динамически обновляться при его выборе пользователем. Тогда в массив будут помещены только те флажки. Это возможно? Есть ли лучшее решение? Я даже не уверен, что смогу обдумать, как это сделать С помощью Javascript. Возможно, ответ заключается в том, как написан мой код mysql?
-
Редактировать: Хорошо, просто больше информации. Запросы SQL, которые я продолжаю, - первые два, чтобы стереть все в чистоте (в случае, если флажок UNCHECKED), а затем они обновляют запросы SQL, основываясь на том, какие флажки отмечены после публикации.
Однако я думаю, что это плохой способ сделать это. Зачем заставлять базу данных сначала уничтожать ВСЕ данные для получения и оплаты? Проблема также в том, что * все последующие флажки, независимо от того, как давно они были проверены, обновляются в запросе SQL, как сейчас. * Должен быть способ обновления это лучше. Я просто не уверен, КАК это сделать. есть идеи?