Intereting Posts
Как запустить загрузку с помощью typo3 / extbase? скрыть и показать div нажмите на кнопку PHP: Может ли массив иметь массив как ключ в паре ключ-значение? Как получить ссылку для запуска скрипта Php? Передача переменных $ _GET (или $ _POST) с разбиением на страницы (SESSION не работает) Проблема при записи файлов со специальными символами в PHP + Apache – проблема с кодировкой если блокировать внутреннюю эхо-инструкцию? Уведомление "Неопределенная переменная" Скрипт загрузки Php Image Отправлять электронную почту Outlook 2010 с помощью PHP Выходной файл PHP на диске в браузере Проверьте, является ли схема URL-адресом HTTP или HTTPS Перенаправить вывод из команды в пакетном файле, выход которого уже перенаправлен? Проблема безопасности при доступе к удаленному изображению с помощью dompdf создание нескольких кнопок с использованием цикла while, но только первая кнопка реагирует при использовании функции .onclick

INSERT INTO, если условие выполнено

Мне нужно сохранить решение массива $solution в таблицу SQL, только если $solution[$i][0] принадлежит к результату запроса SELECT num_arr FROM Schedule WHERE num_arr<>'' . Если он не принадлежит ему, то строка $ i не должна сохраняться в таблице SQL. Ниже представленный запрос кажется неправильным. Как реализовать описанную задачу? Каким будет правильный подход?

 $query_land = "INSERT INTO `Sequence` (`num_arr`,`start`,`fin`,`way_id`) VALUES ('".$solution[$i][0]."','".$solution[$i][1]."', '".$solution[$i][2]."','".$solution[$i][3]."') WHERE '".$solution[$i][0]."' IN (SELECT num_arr FROM Schedule WHERE num_arr<>'')"; 

Статус INSERT имеет два варианта:

 INSERT INTO tableX (a, b, c, ...) VALUES (1, 2, 3, ...) ; 

а также

 INSERT INTO tableX (a, b, c, ...) SELECT 1, 2, 3 FROM ... ; --- the same or another table or many tables 

dual – системная таблица с ровно 1 строкой. Его можно использовать для разных вещей. Здесь он используется так, что VALUES (...) переписывается как SELECT ... где у нас нет подходящей таблицы для включения в предложение FROM :

 $query_land = "INSERT INTO `Sequence` (`num_arr`,`start`,`fin`,`way_id`) SELECT '".$solution[$i][0]."','".$solution[$i][1]."', '".$solution[$i][2]."','".$solution[$i][3]."' FROM dual WHERE '".$solution[$i][0]."' IN (SELECT num_arr FROM Schedule WHERE num_arr<>'')";