Здравствуйте. Не знаю решение проблемы. Помогите, либо направьте.
1) Есть таблица пользователи
Условно user_id user_name
2) Вторая таблица книги
book_id book_name
3) Третья таблица: связь пользователя и все прочитанные книги
user_id book_id
Пользователь авторизовался, получили все его данные одним запросом, возможно ли этим же запросом вывести все прочитанные книги? Left join выводит лишь одну запись. Как вывести все?
Спасибо.
HErATuB
9.04.2013 - 02:16
Возможно
SlavaFr
9.04.2013 - 02:25
Цитата (kevmen @ 8.04.2013 - 19:13) |
Left join выводит лишь одну запись. Как вывести все? |
A как ты выводиш? Код пожалюйста
_____________
↓↓↓↓↓↓↓↓↓↓ответ может быть здесьили в mysql_error();
kevmen
11.04.2013 - 02:06
SELECT u.user_id, u.user_name, b.book_name FROM `users` u
LEFT JOIN `books` b ON b.book_user_id=u.user_id
WHERE u.user_pass='{$user_pass}' AND u.user_login='{$user_login}'
Примерно вот так.
inpost
11.04.2013 - 05:06
kevmenУ таблицы books отсутствует book_user_id. Как ты пытаешься это сделать, что работает у тебя?
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
select u.*, b.* from users as u
left join users_books as ub on u.user_id=ub.book_id
left join books as b on ub.book_id=b.book_id
where u.login='$login' and u.password='$password'
kevmen
11.04.2013 - 23:31
2inpost , это был просто пример, как я выбираю, поле есть.
2kaww, этот запрос выведет лишь одну книгу, а мне нужны все(их может быть 5, 10, 20).
inpost
11.04.2013 - 23:37
kevmenКак можно разбирать запрос, когда ты его неверно пишешь, но при этом говоришь, что он рабочий.
Мы же разбираем твои скрипты и указываем тебе на твои ошибки.
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Цитата (kevmen @ 11.04.2013 - 19:31) |
этот запрос выведет лишь одну книгу, а мне нужны все(их может быть 5, 10, 20). |
неправда, этот запрос выведет ВСЕ книги для юзера с login='$login' and password='$password'. хотя бы сначала попробуй выполнить его прежде чем что-то утверждать. Или у тебя какой-то особый mysql со своим синтаксисом?
kevmen
15.04.2013 - 22:37
kaww, прошу прощения. Действительно.
Но возникает вопрос, если у пользователя в таблице 20 полей, а прочитанных книг порядка 30, то создается 30 переменных, которые содержат все значения. Каким образом обработать эти данные корректнее?
Пока представляю лишь один способ: извлекать из каждого массива нужные переменные и удалять весь массив, оставив лишь один с личными данными.
Valick
15.04.2013 - 22:45
Цитата |
извлекать из каждого массива нужные переменные и удалять весь массив |
вы с бд работаете, пора бы уже забыть про массивы, и учить великий и могучий SQL
_____________
Стимулятор ~yoomoney - 41001303250491
kevmen
16.04.2013 - 23:32
Покажите куда копать.
kevmen
20.04.2013 - 17:44
Товарищи.
inpost
20.04.2013 - 18:20
Как минимум твоё решение в лоб справилось бы с задачей.
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
kevmen
21.04.2013 - 15:46
Хотелось бы сделать наиболее оптимально и правильно.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.