我正在尝试获得每个类别的产品销售总数,尽管使用的数据库结构似乎并不适合这一点。
我已经达到了这样的程度:我只在一个类别(另一个表格)中购买了产品ID(它自己的表格)(还有另一个表格)。因此,循环遍历该类别,我在orders表中选择ID并尝试计算行数。我最终得到了每个项目的项目数,但是我尝试合并并计算它们的任何方式都不起作用。
$SQL = "SELECT * from PRODUCTS WHERE CATEGORY LIKE '%-$thiscat-%' AND STATUS = 'Active' AND STOREITEM = 'Yes' AND ID IN ($item_ids)";
$result = mysql_query( $SQL );
while( $row = mysql_fetch_array( $result ) ) {
$sql_active_accounts = "SELECT count(ID) FROM ORDERS WHERE ITEM_NUMBER ='$row[ID]'";
$res_active_accounts = mysql_query($sql_active_accounts);
while($row_active_accounts = mysql_fetch_row($res_active_accounts)){
print_r($row_active_accounts);
}
};
print_r为特定类别提供的示例仅出售3件商品,但有些商品出售不止一次:
Array ( [0] => 2 ) Array ( [0] => 3 ) Array ( [0] => 1 )
这是正确的三个项目销售,销售次数。 并且array_sum不适用于此。我似乎无法做任何事情来将这些数字加起来。我正在尝试计算特定的行,并且真的不关心它们中的数据以获得最终结果。
我理解循环中的SQL调用是一个坏主意,但这是一个不会经常运行的管理区域脚本。
答案 0 :(得分:0)
$SQL = "SELECT * from PRODUCTS WHERE CATEGORY LIKE '%-$thiscat-%' AND STATUS = 'Active' AND STOREITEM = 'Yes' AND ID IN ($item_ids)";
$result = mysql_query( $SQL ); while( $row = mysql_fetch_array( $result ) ) {
$sql_active_accounts = "SELECT count(ID) FROM ORDERS WHERE ITEM_NUMBER ='$row[ID]'";
$res_active_accounts = mysql_query($sql_active_accounts);
$int_total = 0;
while($row_active_accounts = mysql_fetch_row($res_active_accounts) {
foreach($row_active_accounts as $i)
$int_total += $i;
}
// Use $int_total for total value
如果我理解正确的话,有些人会这样做。
答案 1 :(得分:0)
试试这个
$query = mysql_query("select distinct(pgroup) from test") or die(mysql_error());
while($row = mysql_fetch_array($query)) {
echo $row['pgroup']."=>";
$query1="SELECT count(*),pname FROM `test` where pgroup='$row[pgroup]' group by pname ";
$result1=mysql_query($query1) or die(mysql_error());
$rows1=mysql_num_rows($result1);
while($row_sub=mysql_fetch_array($result1)) {
$query2 = "select * from test where pname = '".$row_sub['pname']."'";
$res2=mysql_query($query2) or die(mysql_error().'errror here');
$row2 = mysql_num_rows($res2);
echo $row_sub['pname']."=".$row2."<br/>";
}
}