Я создал форму, которую связываю с PHP. Мне нужно, чтобы номер внешнего ключа совпадал с идентификатором другой таблицы.
Нет проблем с извлечением данных из формы, и я тестирую это на сеансе ошибок. Также нет проблем с подключением внешнего ключа к базе данных.
Однако оператор Select не работает. Это о синтаксисе оператора вставки? Спасибо.
$Connection=mysqli_connect('localhost','root','','databasename');
$Query = "INSERT INTO musteri_ekle(tarih,musteri_ismi,urun_id)
VALUES('$Now','$Musteri_ismi',(SELECT urun_id from urun_ekle WHERE urun_ismi='$Urun_ismi'))";
$Execute=mysqli_query($Connection,$Query);
if ($Execute){
$_SESSION["SuccessMessage"]= "Müşteri Eklendi.";
redirect_to("musteri_ekle.php");
} else {
$_SESSION["ErrorMessage"]= $Urun_ismi." -- ".$Musteri_ismi;
redirect_to("musteri_ekle.php");
}
}






Вы не можете использовать select внутри values.
Измените свой код с
$Query = "INSERT INTO musteri_ekle(tarih,musteri_ismi,urun_id)
VALUES('$Now','$Musteri_ismi',(SELECT urun_id from urun_ekle WHERE urun_ismi='$Urun_ismi'))";
ниже:
$Query = "INSERT INTO musteri_ekle(tarih,musteri_ismi,urun_id)
SELECT '$Now','$Musteri_ismi',urun_id from urun_ekle WHERE urun_ismi='$Urun_ismi'";
Альтернативный синтаксис
$ Query = "ВСТАВИТЬ В musteri_ekle SET tarih = '$ Now', musteri_ismi = '$ Musteri_ismi', urun_id = (ВЫБЕРИТЕ urun_id из urun_ekle ГДЕ urun_ismi = '$ Urun_ismi')";
Этот тип проблемы обсуждается здесь MySQL INSERT INTO ... VALUES и SELECT
Отлично работает! Спасибо !!