В моей базе данных У меня 3 таблицы: user
, phone
и number
. Их структура соответственно:SQL JOIN result продолжает повторяться
ID | name
---+------
1 | Joe
2 | Gin
3 | Ash
ID | Brand | series
---+-----------+--------
1 | Samsung | s7
2 | Iphone | 6s
3 | Samsung | s5
ID | number
---+----------
1 | 77612
2 | 34014
3 | 98271
То, что я хочу сделать, это выбрать с помощью JOIN
. Вот моя попытка:
$query = "SELECT u.id, p.brand, n.number
FROM `user` u
LEFT OUTER JOIN `phone` p
ON u.id = p.id
LEFT OUTER JOIN `number` n
ON p.id = n.id
WHERE u.id = '$selected'";
$sql = mysql_query($query);
if ($sql === FALSE) {
die(mysql_error());
}
while ($result = mysql_fetch_row($sql)) {
$final[] = $result;
echo '<pre>';
print_r($final);
echo '</pre>';
}
Где $selected
массив массивов из формы ввода, что позволяет выбрать то, что ID
«s, чтобы показать, например:
$selected = array(1, 3);
Но результат:
Array (
[0] => Array (
[0] => 1
[1] => Samsung
[2] => 77612
)
)
Array (
[0] => Array (
[0] => 1
[1] => Samsung
[2] => 77612
)
[1] => Array (
[0] => 3
[1] => Samsung
[2] => 98271
)
)
Если мы установим $selected = array(1, 2, 3)
, выход будет таким же, как показано выше. Как я могу решить эту проблему?
Здравствуйте, спасибо за ваши откликается .. Я получил некоторую ошибку в $ selected array structure. Здесь я уже отредактировал его '$ selected = array (1, 2, 3)' :) Кстати, я попробовал ваш, и он появляется 'array_merge(): Argument # 1 не является массивом в ...' –
в этом случае не используйте 1-ю строку. просто '$ selected = implode (',', $ selected); // 1,2,3 ' – splash58
Я пробовал, но появляется ошибка' Unknown column '1' in 'where clause'', D: –