php - 从具有公共列的两个表中选择全部 - 相同的列名
问题描述
桌子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
有什么帮助吗?
解决方案
您没有指定您拥有的数据库类型。我猜你正在使用mysql。你可以更清楚地说出你想要什么。我猜你正在寻找 SQL 查询和 PHP 代码来按你想要的方式对结果进行排序。
这是一个建议。
SQL 必须是:
$sql_a = 'SELECT id, src, roll, w FROM banners';
$sql_b = 'SELECT id, src FROM brolls';
您应该在 2 个不同的查询中获取所有这些,并形成 2 个不同的数组,每个数组一个:$array_banners 和 $array_brolls; 具有下一个结构:
$array_banners['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"
};
并准备好了。
推荐阅读
- c# - 基于 DB 中的更新的 C# 更新应用程序
- python - 使用 Python 提取嵌套括号中的句子
- sql - 对连接表 sq 中的行求和
- c++ - 当我尝试将 char 输入到 int 时,为什么文件指针会卡住?
- sql - 将 Group by 中的字符串转换为 True / False
- python - 无法单击硒中的元素
- amazon-web-services - CloudFront 自定义对象缓存不起作用
- kubernetes - 解组 JSON 时出错:解码 JSON 时:json:未知字段“hostAliases”
- web-services - 配置 wcf soap 1.2 服务
- excel - 在 VBA 的交互式用户窗体中添加 ComboBox