интересно, может ли кто-нибудь пролить свет или, может быть, помочь, пожалуйста.
Я делаю график, который работает отлично, но я пытаюсь сделать так, чтобы он добавлял картинки тоже... Борясь с тем, чтобы найти решение, я постараюсь быть настолько ясным, насколько могу... UNION ALL отлично работает с информацией, которая мне нужна и отображается, однако, поскольку я пытаюсь получить изображения для указанного события из таблицы изображений, в которой есть путь, я получаю abit.
Примеры таблиц (не фактические таблицы):
Форум
|id.....|memberid.|Descrip....|date....|
|71.....|1........|Hello all..|date....|
|82.....|5........|Hows you...|date....|
члены
|id.....|memid....|username...|date....|
|1......|1........|Steve......|date....|
|2......|5........|Donna......|date....|
Изображений
|id.....|memid....|image
|47.....|1........|images/stevepic.png|
|139....|5........|images/donnapic.png|
ОК, так как код ниже, информация не показывает никаких проблем :)
SELECT id as timeline_id, date_time as timeline_date, thread_title as
timeline_title, post_body as timeline_body FROM forum_posts
UNION ALL
SELECT memid as timeline_id, lastlogin as timeline_date, memusername as
timeline_title, town as timeline_body FROM members
Я проходил через сеть, и Stack Overflow, и я думал, что мне нужно сделать LEFT JOIN, я, возможно, ошибаюсь, я не уверен, но это то, что я считал правильным путем.
Когда я делаю LEFT JOIN ниже, я не получаю ни одной страницы, просто пустой. Журнал ошибок: PHP Предупреждение: mysqli_fetch_array() ожидает, что параметр 1 будет mysqli_result
SELECT id as timeline_id, date_time as timeline_date, thread_title as
timeline_title, post_body as timeline_body FROM forum_posts
UNION ALL
SELECT memid as timeline_id, lastlogin as timeline_date, memusername as
timeline_title, town as timeline_body FROM members LEFT JOIN membersimages ON membersimages.memid = members.memid WHERE memid = %s
То, что я пытаюсь собрать, - это идентификатор участника, так как часть форума не имеет никаких фотографий, но член делает, на шкале времени я хочу показать фотографии участников :)
Надеюсь, я объяснил, чего я пытаюсь достичь, и надеюсь, что кто-то может указать мне в правильном направлении, если я ошибаюсь :) Спасибо!
Используйте это решение: -
$sql = "select *
from members as 'mem'
inner join forum_posts as 'fp'
on fp.memberid = mem.memid
inner join images as 'img'
on img.memid = mem.memid
where 1" ;
Вышесказанное вы можете сделать, чтобы получить все записи одним выстрелом, но в выходном массиве будут повторяться идентификаторы членов, потому что один член будет иметь разные записи. Так лучше будет использовать таблицу 'members' и 'images' во внутреннем соединении (надеясь, что у одного пользователя будет одно изображение профиля) и создайте второй sql, чтобы получить все сообщения за идентификатор члена из 'members'. Надейтесь, что вышеупомянутое решение поможет вам. Пожалуйста, сообщите мне, есть ли какая-либо ошибка.