Php 从两个具有公共列(相同列名)的表中选择“全部”

Php 从两个具有公共列(相同列名)的表中选择“全部”,php,mysql,Php,Mysql,表横幅 | 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 |

横幅

| 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

表具有不同的列数

并非
横幅
中的所有行都有
滚动

banner.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";
}
while($row=$st->fetch()){
$items=
“\n\n”;
}
因此,最终结果应该是:

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

我需要以这种方式列出
横幅
中的所有图像


有什么帮助吗?

您没有指定数据库的类型。我猜你正在使用mysql。你可以更清楚地说出你想要的。我猜您正在寻找SQL查询和PHP代码,以便按照您想要的方式对结果进行排序

这里有一个建议

SQL必须是:

$sql_a = 'SELECT id, src, roll, w FROM banners';
$sql_b = 'SELECT id, src FROM brolls';
您应该在两个不同的查询中获得所有这些内容,并形成两个不同的数组,每个数组一个:$array_banner和$array_brolls;下一个结构:

$array_banner['id value']=array('src'=>'src value','roll'=>'roll value','w'=>'w value'))

$array_brolls['id value']='src value'

然后,您将执行图像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"
};
foreach($k=>v的数组)
{
“\n\n”
};

准备就绪。

只需创建一个
JOIN
语句,使用
brolls
banner
使用别名来区分这两个srccolumns@Ghost,对不起,我编辑了我的帖子,并不是所有的横幅行都有
roll
值,所以在这种情况下,最终结果只有两幅图像,但我需要所有关于你的起始便条的横幅图片-见张贴标签,pls@puerto我注意到你更新了问题。如果横幅没有卷轴,则不可能将其与卷轴链接,因为没有指定卷轴。在我的解决方案中,在这些情况下,“数据滚动”字段将自动留空,因此如果这是您想要的,那么这必须起作用。您也可以随机分配一个。