Son kontrol kutularını alın

0 Cevap php

Ben bir kaç gün boyunca bana kafa karıştırıcı olmuştur bu sorunu başarmak için nasıl emin değilim. Ben bir onay kutusu işaretlendiğinde MySQL kullanıcı kaydını güncelleştiren bir form var. Şimdi, bu benim formu yapar nasıl:

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>'; 


        }


    }   

Ne yazık ki, o zaman ben bunu yapmak istiyorum ne değildir son tarih TÜM kullanıcı kayıtlarını günceller. Ben düşündüm alternatif CheckBox kullanıcı bunu seçildiğinde dinamik güncellenen olacak bir değer veren, Javascript aracılığı ile oldu. Sonra, sadece BU onay kutularını diziye koymak olacaktır. Bu mümkün mü? Daha iyi bir çözüm var mı? Ben JavaScript İLE bunu nasıl etrafında beynimi sarabilirdiniz bile emin değilim. Cevabı belki de benim mysql kodu nasıl yazılır yalan mı?

-

Düzenleme: Tamam, sadece daha fazla bilgi. SQL Sorguları döndüğünü var - ilk iki şeyi silin vardır (durumda bir onay kutusu DENETLENMEYEN) ve ardından bir sonraki onlar onay kutularını yazı üzerine kontrol edildiği dayalı SQL sorguları güncelliyoruz.

Ancak, bunu yapmak için kötü bir yoldur düşünüyorum. Neden önce paymetreceived, paymetdate TÜM verileri silmek için veritabanı zorlar? Bu sorun, aynı zamanda, * all the subsequent checkboxes, regardless of how long ago they were checked, get updated in the SQL query as it is now. * Daha iyi güncellemek için bir yol olmalı olmasıdır. Ben sadece bunu NASIL emin değilim. herhangi bir fikir?

0 Cevap