所以,我有一个名为customers的数据库表。他们购买的最后6种产品存储在客户表中“p1,p2,p3,p4,p5和p6”下。然后该产品将作为产品号存储,例如使用跨多个表的foreach
Last Purchased:
p1: 12355
p2: 55142
p3: 51251
等等。这些产品在“产品”表中都有自己的表格行。在这个名单上是其他“价格”。现在,我想要做的是在最近6次购买中提取最大购买量的一种简单方法。获取最大的是使用max()
命令容易,我可以做类似的全
$p1 = $array[0]["p1"];
$array = $db->queryA("SELECT * FROM products WHERE product = $p1");
,然后比较他们在MAX($ P1,P2 $,$ P3)等等。我的问题是这样的会花费大量的时间和代码。有没有更好的方式来做到这一点,例如使用foreach循环?我很抱歉,但我完全跺脚。再次..所有帮助表示赞赏。 :)
编辑:不知道如何显示表结构,但在这里不用我的尝试,如果对不起是坏:(
customers products
id prod_nr
name name
mail price
member_since quantity
p1
p2
p3
p4
p5
p6
请问这就够了一些更多的领域,但它是什么? “id”和“prod_nr”是初选
编辑nr2:也想解释一下,我有大约11个这样的6 *查询我想运行,以免让你觉得我只是在浪费你的时间而不是我的一点点:) :)
再次编辑,在这里我S上的数据库提供给我的问题的一部分...
public function query($query)
{
try{
$query = trim($query);
$sth = $this->pdo->query($query,PDO::FETCH_ASSOC);
$result = null;
foreach($sth as $row) {
$result[] = $row;
}
return $result != null ? json_encode($result) : null;
}
catch(exception $e)
{
echo('Exception ' . $e);
}
}
后想你的表结构 – 2015-04-02 04:15:48
:)如果它不是你的想法:) – 2015-04-02 04:30:51
有什么都会去做别的事情没有没有没有没有你的数据库模式是不好的。你不应该存储这样的最新6款产品。你需要一个表来存储所有的购买(至少是这些列:客户ID,产品ID,数量和时间戳),然后写入一个JOIN和所需的约束条件(并且限制6是你的朋友) – 2015-04-02 06:46:27