Выбрать все из обеих таблиц с общим столбцом - то же имя столбца

стол banners

| id | src       | roll |w  |...|
-------------------------
| 1  | blue.jpg  | 7    |120|...|
| 2  | white.jpg | 5    |250|...|
| 3  | green.jpg |      |140|...|

стол brolls

| id | src        |...|
-------------------
| 4  | jones.jpg  |...|
| 5  | abba.jpg   |...|
| 7  | italia.jpg |...|

Мне нужно выбрать all из таблиц both

таблицы имеют разное количество столбцов

не все строки из banners имеют значение roll

banners.roll на самом деле brolls.id

while ($row = $st->fetch()){
    $items .=
    "<img src = '" . $row['banners.src'] . "'
    data-id = " . $row['banners.id'] . "
    data-roll = '" . $row['brolls.src'] . "'
    data-w = " . $row['banners.w'] . "
    alt='img'>\n\n";
}

Итак, конечный результат должен быть:

<img src = 'blue.jpg' data-id=1 data-roll='italia.jpg' data-w=120 alt='img'>

Мне нужны образы all из banners, перечисленные таким образом.

Любая помощь?

просто создайте оператор JOIN, используя brolls и banners

Kevin 20.07.2018 06:28

Используйте псевдонимы, чтобы различать два столбца src

Strawberry 20.07.2018 06:33

@Ghost, извините, я отредактировал свой пост, не все строки из banners имеют значение roll, поэтому в этом случае конечный результат дает только два изображения, но мне нужны все изображения с баннеров

user7461846 20.07.2018 06:33
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
38
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не указываете, какой у вас тип базы данных. Я думаю, вы используете mysql. Вы могли бы яснее сказать, что хотите. Я думаю, вы ищете SQL-запросы и PHP-код, чтобы отсортировать результаты так, как вы хотите.

Вот предложение.

SQL должен быть:

$sql_a = 'SELECT id, src, roll, w FROM banners';
$sql_b = 'SELECT id, src FROM brolls';

Вы должны получить их все в двух разных запросах и сформировать два разных массива, по одному для каждого: $ array_banners и $ array_brolls; со следующей структурой:

$ array_banners ['значение идентификатора'] = массив ('src' => 'значение src', 'roll' => 'значение поворота', 'w' => 'значение w')

$ array_brolls ['значение идентификатора'] = 'значение SRC';

Затем вы выполните кодирование изображения в формате html:

foreach( $array_banners as $k => $v)
{
"<img src = '" . $v['src'] . "'
    data-id = " . $k . "
    data-roll = '" . $array_brolls[$v['roll']]['src'] . "'
    data-w = " . $v['w'] . "
    alt='img'>\n\n"
};

И готово.

относительно вашей начальной заметки - см. теги постов, пожалуйста

user7461846 20.07.2018 06:47

@puerto Я заметил, что вы обновили вопрос. В случае баннеров, у которых нет рулона, будет невозможно связать их с помощью баннера, потому что он не указан. В моем решении поле «data-roll» в этих случаях будет автоматически оставлено пустым, поэтому, если это то, что вы хотите, это должно сработать. Вы также можете просто назначить случайный.

algo 20.07.2018 16:52

Другие вопросы по теме