mardi 19 janvier 2016

PHP + SQL - Select case when exists (...) - if 0 Insert row

Using the SELECT CASE WHEN EXISTS () THEN CAST (1 AS BIT) etc query, then based on the result of that query requesting the insert, deletion, or no action. The code inserts and deletes as expected; the problem is it refuses to do nothing, adding a new row even if one already exists. Can someone suggest the reason why this is happening? The code below:

'java' is the name of a tick box.

if (isset($_POST['java'])){

                $sql = $con->query("SELECT CASE WHEN EXISTS 
                (SELECT * FROM userskills
                WHERE UserID = $User AND SkillID = 1)
                THEN CAST(1 AS BIT)
                ELSE CAST(0 AS BIT) END");

                if ($sql == "0"){

                $sql = $con->query("INSERT INTO userskills ( UserID, SkillID) VALUES  ($User, 1)");

            }} else{

                $sql = $con->query("SELECT CASE WHEN EXISTS 
                (SELECT * FROM userskills
                WHERE UserID = $User AND SkillID = 1)
                THEN CAST(1 AS BIT)
                ELSE CAST(0 AS BIT) END");

                if ($sql = "1"){

                $sql = $con->query("DELETE FROM userskills 
                WHERE UserID = $User AND SkillID = 1");

                }}

Aucun commentaire:

Enregistrer un commentaire