gpt4 book ai didi

php - 交叉引用同一个表中的2个字段

转载 作者:行者123 更新时间:2023-11-29 13:12:08 25 4
gpt4 key购买 nike

我正在用 PHP(实际上是 codeigniter)+MYSQL 开发一个应用程序...我会尽量让它简单

我正在产品表上进行选择,因此我得到以下结果:

color        size        quantity
red s 2
red m 3
red l 4
red xl 1
blue s 1
blue m 0
blue l 0
blue xl 1

我需要这样显示结果

color        s        m        l        xl
red 2 3 4 1
blue 1 0 0 1

有什么想法吗??? SQL 或 PHP 都可以...

提前致谢。

最佳答案

诚然,在看到其他帖子直接从数据库进行分组后,这种方法似乎相当蹩脚。但是,您可以使用 PHP 来格式化数据,方法是将每种颜色存储在其自己的数组中,然后从那里对其进行迭代:

<?php

$link = mysqli_connect('localhost', 'user', 'pass', 'database');

$q = 'SELECT * FROM product ORDER BY color';
$result = mysqli_query($link, $q);

$color_array = array();

while ($row = mysqli_fetch_array($result)) {

$color = $row['color'];
$size = $row['size'];
$quantity = $row['quantity'];

$color_array[$color][$size] = $quantity;

}

foreach ($color_array AS $color_key => $color_item) {

print $color_key."\t".$color_item['s']."\t".$color_item['m']."\t".$color_item['l']."\t".$color_item['xl']."\n";

}

编辑:

我在您的评论中看到您可能有 1 到 6 种尺寸。我原来的代码并不能真正解决这个问题,所以我对其进行了一些修改,以从数组中读取大小,然后如果在数据库中找到它们,则将其打印出来。

<?php

$link = mysqli_connect('localhost', 'user', 'pass', 'database');

$size_array = array('s', 'm', 'l', 'xl', 'xxl', 'xxxl');

$q = 'SELECT * FROM colors ORDER BY color';
$result = mysqli_query($link, $q);

$color_array = array();

while ($row = mysqli_fetch_array($result)) {

$color = $row['color'];
$size = $row['size'];
$quantity = $row['quantity'];

$color_array[$color][$size] = $quantity;

}

foreach ($color_array AS $color_key => $color_item) {


print "\n".$color_key."\t";

foreach ($size_array AS $size) {
print isset($color_item[$size]) ? $color_item[$size]."\t" : "\t";
}

}

关于php - 交叉引用同一个表中的2个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21947770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com