У меня есть таблица со списком пользователей. У каждого пользователя есть столбец с Select. Я пытаюсь заполнить Select со списком элементов, входящих в ассоциативную таблицу, связанную с каждым пользователем.Создайте ассоциативный массив из SQL SELECT JOIN (PHP)
Я хотел бы сохранить эти элементы в массиве, а затем закодировать этот массив в теге select, но я потерял один массив для каждого пользователя и сделал отношение в результате запроса. Я использую PDO для запросов. Надеюсь, ты поймешь мой вопрос. Мой код ниже о том, как я пытаюсь это сделать. Я новичок в этом.
После многих попыток у меня это есть.
$stmt = $pdo->prepare("SELECT id,account,gender,age,education,expected_salary,phone,email
FROM user
ORDER BY id");
$stmt->execute();
// set the resulting array to associative
$seeker_list = $stmt->fetchAll(PDO::FETCH_ASSOC);
//To get the list for the select <tag>
foreach($seeker_list as $key => $value){
$seeker = $value['account'];
$query = $pdo->prepare('SELECT user_specialty.specialty_id as id_user_specialty,
specialty.specialty
FROM user_specialty
JOIN specialty ON user_specialty.specialty_id = specialty.id
WHERE user_specialty.user = $seeker');
$query->execute();
$specialty_list = $query->fetchAll(PDO::FETCH_ASSOC) ;
foreach($specialty_list as $key => $value){
echo $value['id_user_specialty'];
}
}
'$ данных [$ значение [» id_user_specialty ']] [] = $ value [' specialty ']; '? Затем вам нужно пройти через каждый ассоциативный массив user_id, чтобы распечатать выбранные элементы? – Darren
Обратите внимание, что ваш второй запрос завернут в одинарные кавычки, что означает, что переменные в нем не интерполированы, но это не так. его подготовленные заявления, и, следовательно, переменные должны быть связаны, вы побеждаете его цель. – Ghost
, вы можете захотеть переписать весь запрос и поместить их в один, это будет болезненно медленным, так как у вас есть другой запрос внутри цикла выборки – Ghost