Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP使用mysql列的和填充数组_Php_Mysql_Arrays_Sum - Fatal编程技术网

PHP使用mysql列的和填充数组

PHP使用mysql列的和填充数组,php,mysql,arrays,sum,Php,Mysql,Arrays,Sum,我是一个编程新手。我试图从MySQL表中创建一个数组,稍后我将使用它在PHP/Javascript中创建一个图形 整个想法是,我想制作一个数组,填充代表一年中每个星期的数据。因此,一个包含52个条目的数组(让我们忘记有时发生的第53周) 我的数据库: 我的数据库中有一个表,用于: +-------------------------+ I production I +-------------------------+ I Shift I (number)

我是一个编程新手。我试图从MySQL表中创建一个数组,稍后我将使用它在PHP/Javascript中创建一个图形

整个想法是,我想制作一个数组,填充代表一年中每个星期的数据。因此,一个包含52个条目的数组(让我们忘记有时发生的第53周)

我的数据库:

我的数据库中有一个表,用于:

+-------------------------+ I production I +-------------------------+ I Shift I (number) I <-ranging from 1 to 3 (different shifts people make) I Line I (number) I <-ranging from 1-8 (different 'conveyor belts') I Products I (number) I <-ranging from 0- a lot! (To be entered in a form) I Week I (number) I <-ranging from 1 to 52 +-------------------------+ 我可以通过添加52个不同的MySQL查询来做到这一点,唯一的区别是week='x'在哪里

到目前为止,我只是在试验interwebz上的代码

任何帮助都将不胜感激!:D


来自荷兰的问候语

只要去掉WHERE子句,你就会得到每周的结果

$result = mysql_query("SELECT week, SUM(products) AS total 
  FROM production GROUP BY week");
结果将作为结果集中的连续行返回,您可以将它们放入数组中:

$sum_by_week = array();
while ($row = mysql_fetch_assoc($result)) {
  $sum_by_week[$row["week"]] = $row["total"];
}

PS:您没有要求这样做,但是您应该知道mysql_*函数正在被弃用。对于新的PHP应用程序,应该开始使用mysqli函数或PDO。只有在维护现有应用程序的情况下,才值得继续使用旧的mysql_*函数。

对于使用mysql而不是另一个扩展,提前表示歉意。;-)


您当前使用的SQL查询是什么?我认为您只需返回相应的结果,然后在PHPI中进行处理。我认为您可能希望GROUP BY在weekAlso之前收集结果。因此,“周数”有一个ISO标准。您可能希望检查您的数字是否一致。我正在使用的当前MySQL查询=
MySQL\u查询(“每周从production WHERE week='1'GROUP BY week中选择周,求和(产品))(每一个新条目一周一次。因此,此查询52次)可能会忽略WHERE子句。您好,Ray Paseur,首先,感谢您的回答。代码似乎没有错误,因为我可以在这里运行它。但我不能回显阵列。。。当错误报告级别被抑制时,空白屏幕通常是PHP解析错误的症状。将这两行添加到脚本顶部:错误报告(E_ALL);ini设置(“显示错误”,真);
$sum_by_week = array();
while ($row = mysql_fetch_assoc($result)) {
  $sum_by_week[$row["week"]] = $row["total"];
}
<?php // RAY_temp_rowan.php
error_reporting(E_ALL);
echo "<pre>";


// CONNECTION AND SELECTION VARIABLES FOR THE DATABASE
$db_host = "localhost"; // PROBABLY THIS IS OK
$db_name = "??";        // GET THESE FROM YOUR HOSTING COMPANY
$db_user = "??";
$db_word = "??";

// OPEN A CONNECTION TO THE DATA BASE SERVER
// MAN PAGE: http://php.net/manual/en/function.mysql-connect.php
if (!$db_connection = mysql_connect("$db_host", "$db_user", "$db_word"))
{
    $errmsg = mysql_errno() . ' ' . mysql_error();
    echo "<br/>NO DB CONNECTION: ";
    echo "<br/> $errmsg <br/>";
}

// SELECT THE MYSQL DATA BASE
// MAN PAGE: http://php.net/manual/en/function.mysql-select-db.php
if (!$db_sel = mysql_select_db($db_name, $db_connection))
{
    $errmsg = mysql_errno() . ' ' . mysql_error();
    echo "<br/>NO DB SELECTION: ";
    echo "<br/> $errmsg <br/>";
    die('NO DATA BASE');
}
// IF WE GOT THIS FAR WE CAN DO QUERIES


// CREATING A TABLE
$sql = "CREATE TEMPORARY TABLE my_table (
        _key INT         NOT NULL AUTO_INCREMENT,
        shift    INT NOT NULL DEFAULT 0,
        line     INT NOT NULL DEFAULT 0,
        products INT NOT NULL DEFAULT 0,
        week     INT NOT NULL DEFAULT 0,
        PRIMARY KEY(_key)  )";
$res = mysql_query($sql);

// IF mysql_query() RETURNS FALSE, GET THE ERROR REASONS
if (!$res)
{
    $errmsg = mysql_errno() . ' ' . mysql_error();
    echo "<br/>QUERY FAIL: ";
    echo "<br/>$sql <br/>";
    die($errmsg);
}



// LOAD UP THE TABLE
mysql_query('INSERT INTO my_table (shift, line, products, week) VALUES (1,2,4000, 1)') or die(mysql_error());
mysql_query('INSERT INTO my_table (shift, line, products, week) VALUES (1,4,4000, 1)') or die(mysql_error());

mysql_query('INSERT INTO my_table (shift, line, products, week) VALUES (1,2,4000, 2)') or die(mysql_error());
mysql_query('INSERT INTO my_table (shift, line, products, week) VALUES (1,4,5000, 2)') or die(mysql_error());

mysql_query('INSERT INTO my_table (shift, line, products, week) VALUES (1,2,4000, 3)') or die(mysql_error());
mysql_query('INSERT INTO my_table (shift, line, products, week) VALUES (1,4,6000, 3)') or die(mysql_error());


// MAKING A SELECT QUERY AND TESTING THE RESULTS
$sql = "SELECT week, SUM(products) as sump FROM my_table GROUP BY week ORDER BY week ASC";
$res = mysql_query($sql);

// IF mysql_query() RETURNS FALSE, GET THE ERROR REASONS
if (!$res)
{
    $errmsg = mysql_errno() . ' ' . mysql_error();
    echo "<br/>QUERY FAIL: ";
    echo "<br/>$sql <br/>";
    die($errmsg);
} // IF WE GET THIS FAR, THE QUERY SUCCEEDED AND WE HAVE A RESOURCE-ID IN $res SO WE CAN NOW USE $res IN OTHER MYSQL FUNCTIONS



// ITERATE OVER THE RESULTS SET TO SHOW WHAT WE SELECTED
while ($row = mysql_fetch_assoc($res))
{
    $out[$row["week"]] = $row["sump"];
}

var_dump($out);