В SQL-запросе "UPDATE" в поле "WHERE" неправильно сравнивается переменная. Если заменить переменную в поле «WHERE» на значение, запрос сработает:
WHERE `Id` = "1"
Таблица Main:
Group_IDGroup (int) 1
Human_IDHuman (int) 1
Month_IDMonth (int) 1
DayID (int) 1
Pos (int) 0
Id (int) 1
================================================== ======================
Уже пытался ставить все виды кавычек и апострофов, какие только нашел в похожих темах:
$result[Id]
$result["Id"]
"$result["Id"]"
\"$result[\"Id\"]\"
".$result["Id"]."
Эти варианты не работают, уже пробовал.
$query = "UPDATE main SET Pos = '!Pos' WHERE (Id = '{$result['Id']}')";
//$query = 'UPDATE main SET Pos = !Pos WHERE Id="'. $result['Id']. '")';
Вот вырезка куска кода, который не работает.
$sqlchk = mysqli_query ($link, 'SELECT `Group_IDGroup`,` Human_IDHuman`, `Month_IDMonth`,` DayID`, `Pos`,` Id` FROM `Main`');
$result = mysqli_fetch_array ($sqlchk)
$query = 'UPDATE `main` SET` Pos` = "! Pos" WHERE (`Id` ="$result[Id]")';
$sqlposchk = mysqli_query ($link, $query);
$query = "UPDATE \main` SET `Pos` = !Pos WHERE `Id`='{$result['Id']}'";` ? – Алексей Шиманский Jun 24 '19 at 08:46mainSETPos= '!Pos' WHERE (Id= '1') Это полностью совпадает с тем, что я прописывал вручную для поиска ошибки, но вот в чем проблема: Ручной вариант работает, а через переменную нет. – Артём Титов Jun 24 '19 at 08:50Pos = '!Pos', а неPos = !Pos? – Алексей Шиманский Jun 24 '19 at 08:52!Pos. А если писатьPos = !Posили\Pos` = !`Pos`` - то это воспринимается уже как имя колонки и смена значения работает – Алексей Шиманский Jun 24 '19 at 17:11