2016-04-07 35 views
0

我只希望在「VacantSpaces」不爲0時執行更新查詢。換句話說,一旦特定事件不再有空格,「VacantSpaces」將爲0,是用戶不應該能夠加入和數量不會去-1,-2等。如果data = 0,則不要更新(執行)表。 (JavaScript/SQL)

但我不太清楚如何去做這件事。

JavaScript函數:

function updateEvent(title) { 
    db = window.openDatabase("SoccerEarth", "2.0", "SoccerEarthDB", 2 * 1024 * 1024); 
    db.transaction(function(tx) { 
     tx.executeSql("Update EventSoccer SET VacantSpaces = VacantSpaces -1, NoPeople = NoPeople + 1 
         WHERE Title = '" + title + "'", 
         [], 
         successJoin, 
         errorCB 
     ); 
    }); 

    function successJoin() { 
     navigator.notification.alert("You have joined the event!", 
             null, 
             "Information", "ok"); 

     $(":mobile-pagecontainer").pagecontainer("change", "#page4"); 
    } 
} 

回答

1

您是否嘗試過做這樣的查詢:

tx.executeSql("Update EventSoccer SET VacantSpaces = VacantSpaces -1, NoPeople = NoPeople + 1 
       WHERE Title = '" + title + "' AND VacantSpaces > 0", 
       [], 
       successJoin, 
       errorCB 
); 

注:請使用空數組[]你傳遞給函數來淨化你的輸入,第二個參數。

+0

感謝隊友,「AND VacantSpaces> 0」工作過。但是,您忘記了在0之後出現雙引號。 – Mahdi

+0

雖然VacantSpaces爲0時數據庫不再更新,但我怎麼能提醒用戶他們無法從上面的代碼加入,因爲此時成功警報仍在顯示? – Mahdi

+0

你說得對,我修好了引號.. 爲了達到這個目的,你應該使用一個單獨的查詢或者假設如果這個查詢返回一個空對象,那麼無論是'title'還是'VacantSpaces'都是0 由於您正在執行UPDATE查詢,因此無法檢索數據 – FredMaggiowski

相關問題