2016-04-07 7 views
0

Ich möchte nur die Update-Abfrage ausgeführt werden, wenn die "VacantSpaces" nicht 0 ist. Also, sobald es keine Leerzeichen mehr für ein bestimmtes Ereignis ist "VacantSpaces" wird 0 so die Idee ist, dass Benutzer nicht in der Lage sein sollten, beizutreten und die Nummer wird nicht gehen -1, -2 etc.Wenn data = 0, dann aktualisiere die Tabelle nicht. (JavaScript/SQL)

Allerdings bin ich mir nicht ganz sicher, wie das geht.

JavaScript Funktion:

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"); 
    } 
} 

Antwort

1

Haben Sie versucht, die Abfrage wie folgt vorgehen:

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

NB: Bitte verwenden Sie das leere Array [] Sie auf die Funktion als zweiter Parameter übergeben Ihre Eingaben zu sanieren .

+0

Dank Mate, "UND VacantSpaces> 0" arbeitete ein Vergnügen. Sie haben jedoch das doppelte Anführungszeichen nach der 0 vergessen. – Mahdi

+0

Obwohl die Datenbank nicht mehr aktualisiert wird, wenn VacantSpaces 0 ist, wie kann ich den Benutzer darauf hinweisen, dass er aus dem obigen Code nicht beitreten kann, da der Erfolgsalarm immer noch angezeigt wird ? – Mahdi

+0

Sie haben Recht, ich habe die Anführungszeichen .. Sie sollten eine getrennte Abfrage verwenden oder vorausgesetzt, dass, wenn diese Abfrage ein leeres Objekt gibt entweder ein ungültiger Titel oder die VacantSpaces ist 0 Da Sie eine 'UPDATE'-Abfrage durchführen, können Sie keine Daten abrufen – FredMaggiowski

Verwandte Themen