У меня есть php-страница, на которой я могу создавать, обновлять и видеть некоторых пользователей и другую страницу, где я могу видеть элементы пользователя (colaboradores's table) (ativos's table), и они связаны с FK (id_colaborador) .
На странице создания ativos мне удается ввести все данные, и вместо ввода FK itselv (id_colaborador) пользователь может ввести ИМЯ пользователя (colaboradores.nome) .
Дело в том, что я хочу сделать то же самое на странице UPDATE.PHP, но я просто не могу понять, как ввести colaboradores.nome в поле id.colaborador (FK) вместо него ...
Извините, если я не смог четко объяснить себя.
Вот переменная $sql с запросом для create.php:
$sql = "INSERT INTO ativos (ativo,comentario,data_aquisicao,localizacao,fabricante,modelo,imei,
numero_serie,ativo_sap,evento,data_evento,id_colaborador)
SELECT ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, id_colaborador
FROM colaboradores
WHERE nome = ?";
А вот и переменная $sql с запросом для update.php:
$sql = "UPDATE ativos SET ativo = ?, comentario = ?, data_aquisicao = ?, localizacao = ?, fabricante = ?, modelo = ?, imei = ?,
numero_serie = ?, ativo_sap = ?, anexo_a = ?, evento = ?, data_evento = ?, id_colaborador = ? WHERE id_ativo = ?";
Спасибо за уделенное время!
Обновлять:
Я имею в виду, можно ли получить код update, похожий на код create?
Обновление должно selectcolaboradores.nome, чтобы заменить id.colaborador (FK) и оставить WHERE id_ativo = ? что-то вроде того, что я предполагаю ...
$sql = "UPDATE ativos SET ativo = ?, comentario = ?, data_aquisicao = ?, localizacao = ?, fabricante = ?, modelo = ?, imei = ?,
numero_serie = ?, ativo_sap = ?, anexo_a = ?, evento = ?, data_evento = ? SELECT id_colaborador FROM colaboradores
WHERE nome = ? AND WHERE id_ativo = ?";
Кроме того, возникают ли у вас какие-либо ошибки? Или просто не работает? Если возникают ошибки, укажите их в вопросе :).
если вы обновляете связанный объект (ativo's), вам не нужно снова устанавливать ID + Name таблицы colaboradores, просто оставьте это.
@minitauros Этот идентификатор - это идентификатор пользователя, я хочу обновить это поле, потому что пользователя элемента можно переключить (допустим, Iphone с Майком, Майк (id=1) уходит, а Iphone уходит Джо (id=2))
Я больше не получаю ошибок
Я обновил вопрос!
Вы пробовали выполнить запрос вручную? С вводимыми вручную значениями? Смотрите, что происходит? Может быть, в запросе не ошибка, а вставленные значения.
Я имею в виду, можно ли получить код update, похожий на код create? Обновление должно выбрать colaboradores.nome для замены id.colaborador (FK) и оставить WHERE id_ativo = ?






Вам необходимо создать список с помощью PHP (например, раскрывающийся список), содержащий имя в качестве метки и идентификатор в качестве значения. Таким образом, пользователи смогут выбрать в списке имя. Когда выбор сделан, вы должны использовать значение (id).
<form action = "#" method = "post">
<select name = "Users">
<option value = "1">Paul</option>
<option value = "2">Pierre</option>
<option value = "5">Marco</option>
<option value = "8">Jean</option>
</select>
<input type = "submit" name = "submit" value = "Get Selected Values" />
</form>
Затем получить идентификатор с помощью PHP
<?php
if (isset($_POST['submit'])){
$selected_val = $_POST['Users']; // Storing Selected Value In Variable
echo "You have selected :" .$selected_val; // Displaying Selected Value
}
?>
Спасибо за вашу помощь, Николас, но у меня будет более 300 пользователей ... У меня не может быть такого раскрывающегося списка: / Я думал об автозаполнении, как о create.php, но по какой-то причине его не будет работать над update.php: / Я думал, могу ли я иметь два предложения WHERE, но idk
@CarlosSantiago можно настроить автозаполнение для выбора идентификатора, вам просто нужно правильно его настроить. Мы не знаем, что вы сделали не так, но, возможно, вам стоит отредактировать вопрос, включив это, если теперь это ваша проблема. P.S. Ввод имени напрямую бесполезен, потому что оно не уникально - в конечном итоге у вас появятся два пользователя по имени Майк. Вы можете направить пользователя в Выбрать по имени, но вам нужно отправить на сервер полученный идентификатор.
Банкомат @CarlosSantiago большая часть выпадающего списка реализована с поиском. Таким образом, если вы введете «Mi», когда раскрывающийся список имеет фокус, список переместится к первому входу, соответствующему «Mi».
@Nicolas правда, но он действительно простой (поиск только с начала строки), не удобен для пользователя (функция скрыта и также не показывает вам, что происходит, когда вы печатаете), и большинство людей, вероятно, даже не знают об этом. В любом случае список Plus 300 по-прежнему остается громоздким - он может выпадать из нижней части экрана в зависимости от дизайна страницы. Автозаполнение было бы гораздо более приятным решением.
Я имею в виду, можно ли получить код update, похожий на код create? Обновление должно выбрать colaboradores.nome для замены id.colaborador (FK) и оставить WHERE id_ativo = ?
Зачем вам вообще нужно обновлять этот идентификатор? Разве ты не можешь просто это оставить? Он уже там, правда?