Я пытаюсь обернуть голову вокруг нормализации таблиц, код, который я собрал ниже, предназначен для демонстрационных целей и не является производством. Я создал две таблицы, таблицу users
и таблицу eye_color
, поэтому у меня может быть отношение от одного до многих между двумя.Учебная таблица объединяется в php mysqli
Что я хочу сделать, это показать пользователю и их цвет глаз по имени, но даже пытаться вернуть результат мне сложно, и мне интересно, куда я иду, я искал и искал, но я лучше учился Обсуждение:
$sql = "SELECT *
FROM users
INNER JOIN eye_color
ON user.eye_color = eye_color.id";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo $row['id'];
echo $row['eye_color'];
}
} else{
echo 'No results';
}
Я не ищу прямой ответ. Я ищу совет, чтобы я мог двигаться вперед и продолжать понимать.
Моя структура таблицы, как следующее:
Table name: users
id (PK)
name
email (Unique)
eye colour (FK)
Table name: eye_color
id (PK)
color
Возможно, вам понадобится левое соединение вместо внутреннего соединения. [Это хорошее объяснение разных типов объединений] (https://blog.codinghorror.com/a-visual-explanation-of-sql-joins/) – aynber
будет много возможных цветов глаз для пользователя? если да, оставайтесь вместе, вам нужно –
@PeterDarmis Ну, каждый пользователь будет указывать в этом примере один цвет глаз – danjbh