我有一個包含日期價格的輸入框矩陣。如果某個特定日期的數據庫中沒有價格,輸入框將顯示0.我有以下代碼將輸入到輸入框中的價格保存到數據庫中。它不會保存所有0值只有新的價格。cakephp價格檢查
這很好。但是我現在發現了一個問題。如果其中一個輸入顯示數據庫中的值,例如$ 10,並且我想現在將其設置爲0,則代碼將不會執行此操作。
只有當值大於0時纔會保存。我還沒有能夠做這個最後的檢查。
保存的條件是 1.如果值是數字 2.如果爲0,已在數據庫中的條目,然後保存 3.如果在數據庫中沒有值,大於0 4.如果是0,並且在數據庫中沒有值,那麼不救
if (isset($this->data['Rate'])){
// for each rate
foreach($this->data['Rate'] as $rate_id => $room){
// for each room type
foreach($room as $room_id => $room){
$price_for_today = isset($room['Price'][$key]) ? $room['Price'][$key] : 0;
// get existing availabilities is num (get this from previous date loop)
$today = ''.$date.' 00:00:00';
$conditions = array('Availability.date' => $today,'Availability.room_id'=>$room_id);
$this->Availability->contain();
$result = $this->Availability->find('all',array('order'=>'Availability.room_id ASC', 'conditions'=>$conditions));
$avail_id = $result[0]['Availability']['id'];
// check prices
$check_prices = "SELECT * FROM prices
WHERE rate_id = '".$rate_id."' AND availability_id = '".$avail_id."'";
$prices_result = $this->Availability->query($check_prices);
// if new prices > 0.00
if($price_for_today>0 && is_numeric($price_for_today)){
// better checking needed!
if($prices_result){
$setprices = "UPDATE prices SET price = '".$price_for_today."'
WHERE rate_id = '".$rate_id."' AND availability_id = '".$avail_id."'";
$update = $this->Availability->query($setprices);
} else {
$setprices = "INSERT INTO prices (price, availability_id, rate_id)
VALUES ('".$price_for_today."', '".$avail_id."', '".$rate_id."')";
$insert = $this->Availability->query($setprices);
}
}
//$errors[] = $setprices;
} // end rooms loop
} // end Rates loop
謝謝。是的,我確實注意到函數中的查詢。我有這個爲我開發的,並且有一些問題。我目前正在尋找一位程序員來解決我所遇到的問題。謝謝 –