INSERT INTO с условием WHERE

306
08 февраля 2018, 14:42

Необходимо сделать вставку в таблицу строк с отмеченными чекбоксами. Код выглядит следующим образом:

foreach($_POST['check'] as $id) 
    { 
        $sql = "INSERT INTO torder (`ID_RequestDriver`, `ID_Person`) VALUES (".$idreqdr.",".$iddr.") WHERE ID_RequestDriver = " . (int) $id; 
        mysql_query($sql); 
    }

Но уже на этапе подсветки синтаксиса код "ругается" на условие WHERE. Возможно ли вообще делать вставку в таблицу, используя условие WHERE? И если возможно, как это реализовать правильно в моем случае?

Answer 1

Подозреваю, что это вот то, что требуется

foreach($_POST['check'] as $id) 
{ 
    if ($idreqdr == (int) $id) {
        $sql = "INSERT INTO torder (`ID_RequestDriver`, `ID_Person`) VALUES (".$idreqdr.",".$iddr.")"; 
        mysql_query($sql); 
    }
}
Answer 2

В синтаксисе запроса INSERT INTO не может быть WHERE. Используйте UPDATE! INSERT добавляет в таблицу новые строки, а UPDATE изменяет уже существующие.

READ ALSO
Inner Join одной рандомной строки

Inner Join одной рандомной строки

Имеем две таблицы Videos и ThumbsОтношение между объектами video и thumb - has many

275
Способ хранения в базе

Способ хранения в базе

Нужно хранить в базе записи о названии иностранного языка и уровне его владения, к примеру:

289
mysql как оптимизировать order by имея 3 join'a

mysql как оптимизировать order by имея 3 join'a

СУБД: mysql percona последней версии

252