PHP:MY​​SQL Row into Array

时间:2016-05-20 22:05:36

标签: php mysql arrays mysqli

我有一点问题,希望你能帮助我...在我的mysql表格中,我有一个名为size的行:

  

“XS”=>“11”,“S”=>“22”,“M”=>“33”,“L”=>“44”

我想在数组中得到它,所以我可以将它发布到我的选择中。

$x = mysqli_query($mysql_link, "SELECT * FROM dagenshug_produkt WHERE varenummer = '$produktid'");
while($row = mysqli_fetch_assoc($x)) {
    $sizearray = array($row['size']);
    print_r($sizearray);
}

返回:

  

数组([0] =>“XS”=>“11”,“S”=>“22”,“M”=>“33”,“L”=>“44” )

但我想

  

数组(“XS”=>“11”,“S”=>“22”,“M”=>“33”,“L”=>“44”)

任何能帮助我一点的人?

Picture of the db design

The new db design

3 个答案:

答案 0 :(得分:0)

我发布这个作为答案,因为它将发表评论 我稍后会删除它,因为它不是你问题的真实答案。

您需要重新设计数据库。请阅读关系数据库设计。

一种(简单)可能性是每个尺寸有一个表格字段。 这种设计的缺点是,如果f.e.一个产品发明了一个名为XMS的新尺寸,你需要重写很多代码 这是关系表到位的地方。如果你有一个额外的桌子可以保存每个产品的所有尺寸,那你就没事了!

这样的尺寸表可能看起来像这样:

product_sizes
----------------
id          // unique id of this entry (int, auto_incement)
label       // 'XS', ...
size        // '22',...
product_id  // the id of the product it refers to

但所有这些想法都取决于我们不了解的要求。

答案 1 :(得分:0)

你问了一个错误的问题。如评论中所述,您需要重新设计数据库。

您不一定要开发通用的产品变体(颜色,尺寸,事项等)。

您的产品在桌子上,它们都有唯一的ID。好。在另一张表中,存储您的尺寸:

  • id:整数自动增量(PK)
  • size_name:2XS,XS,L,M,L,XL,XXL,3XL
  • size_description(用于后台的信息)
  • product_type(或产品类别)。请记住,XL是衬衫尺码,而10是鞋码。

pivot 表,它实现了您的产品与尺寸之间的关系:

  • PRODUCT_ID
  • size_id

此表可能包含关系数据,如额外费用(有时大尺寸更广泛)等。

为了做得更好,您可以将关联尺寸< - > 产品类型与另一个表存储在一起。您的后台必须允许将某些尺寸应用于适当的产品。

反正。在phpMyAdmin中设计数据库不会。决不。有一些特定的工具,比如MySQL Workbench。它将帮助您全面了解数据库。

你还 需要 来了解表示实体的表和由于技术原因而存在的表之间的区别(对不起,我的词汇量有点受限)这个案例)。 pivot 表不是实体,即使它可以携带数据(例如:用户添加到组中的日期)。

了解这些基础知识非常重要,它们将帮助您构建强大,安全,高效和快速的数据库。

答案 2 :(得分:0)

我希望能帮到你......

$x = mysqli_query($mysql_link, "SELECT * FROM dagenshug_produkt WHERE varenummer = '$produktid'");
$row = mysqli_fetch_assoc($x);
$arr = explode(",",$row['size']);

$a=array();
foreach($arr as $n) {
$m = explode("=>",$n);
$a[$m[0]]= $m[1];
}

print_r($a);