I currently working on simple Christmas gifts database :) and I have a problem with my Edit function. When user select existing gift for edit (by ID) and enter new values (for example for price) I want only that the price is changed and everything else is kept as it was. I try to use function IFNULL but my code is not working as I expected. Everytime i get new value for price, the other fields are erased.
My code (Iam using MySQL):
            else if($_REQUEST['btn_submit']=="Edit")
            {
                    $gifts_id = $_POST["gifts_id"];
                    $year = $_POST["year"];
                    $whom = $_POST["whom"]; 
                    $category = $_POST["category"]; 
                    $what = $_POST["what"]; 
                    $shop = $_POST["shop"]; 
                    $url = $_POST["url"]; 
                    $price = $_POST["price"]; 
                    $note = $_POST["note"]; 
                    $status = $_POST["status"];                  
                    Db::query("
                        UPDATE `gifts` 
                        SET
                            `year` = ifnull('$year',`year`),
                            `whom` = ifnull('$whom',`whom`),
                            `category` = ifnull('$category',`category`),
                            `what` = ifnull('$what',`what`),
                            `shop` = ifnull('$shop',`shop`),
                            `url` = ifnull('$url',`url`),
                            `price` = ifnull('$price',`price`),
                            `note` = ifnull('$note',`note`),
                            `status` = ifnull('$status',`status`) 
                        WHERE
                            `gifts_id` = '$gifts_id';
                              ");
                    echo("<p>Gift with ID:'$gifts_id' successfully updated</p>");
            }
Thanks for answers!
PS: I code just for fun so please be mercyful :)
 
     
     
    