我无法弄清楚如何解决这个问题:
数据库:
+-------+-------------+------+
| id | ArticleNr | Size |
+-------+-------------+------+
| 1 | AN111 | L |
| 2 | AN111 | XL |
| 3 | AN222 | M |
+-------+-------------+------+
sql = "SELECT * FROM table GROUP BY article_number"
$result = $site_db->query($sql);
my_array = array();
while ($row = $site_db->fetch_array($result)) {
$article_number = $row['article_number'];
$size = $row['size'];
$my_array[${'article_number'}] .= $row['size'];
}
结果我得到了这个:
AN111 :L
AN222 :M
但是我想要这样的东西:
AN111 :L - XL
AN222 :M
任何帮助将不胜感激
答案 0 :(得分:3)
我猜你想要这样的东西:
for (NSExtensionItem *item in self.extensionContext.inputItems) {
for (NSItemProvider *itemProvider in item.attachments) {
[itemProvider loadPreviewImageWithOptions:@{NSItemProviderPreferredImageSizeKey: [NSValue valueWithCGSize:CGSizeMake(60.0f, 60.0f)]} completionHandler:^(UIImage * item, NSError * _Null_unspecified error) {
// Set the size to that desired, however,
// Note that the image 'item' returns will not necessarily by the size that you requested, so code should handle that case.
// Use the UIImage however you wish here.
}];
}
}
除非你真的,真的,真的知道自己在做什么,否则不要将SELECT article_number, GROUP_CONCAT(DISTINCT size)
FROM table
GROUP BY article_number;
与SELECT *
一起使用。它在大多数其他数据库中是不允许的,通常是代码损坏的标志。
答案 1 :(得分:1)
如果文章编号有多个条目,则sql的返回值将是与分组文章编号匹配的第一个答案,因此返回的L
我会ORDER BY article_number
并忘记GROUP BY子句。
这将返回php解析器的所有答案
$sql = "SELECT * FROM table ORDER BY article_number"
$result = $site_db->query($sql);
$my_array = array();
$article_number = '';
$size = '';
while ($row = $site_db->fetch_array($result)) {
if($row['article_number']!=$article_number) {
$article_number = $row['article_number'];
$size = $row['size'];
} else {
$article_number = $row['article_number'];
$size .= ' - '.$row['size'];
}
$my_array[$row['article_number']] = $row['size'];
}
答案 2 :(得分:0)
SELECT *
FROM my_table
ORDER
BY articlenr
, FIELD(size,'XS','S','M','L','XL','XXL');
这个问题的其余部分可以通过一个简单的PHP循环来解决。