使用数组将mysql dayofweek整数转换为while循环中的工作日名称?

时间:2015-12-02 13:27:33

标签: php mysql arrays loops

我想总结一下我在一周中不同日子使用的金额。每次使用钱和当时使用的金额时,我都会为MySQL数据库保留一个时间戳。

在总结我每个工作日使用的钱时,我想让不同的工作日显示他们友好的丹麦名字,而不是星期日为零,星期一为1等等。

我认为这样做的方法是创建一个具有不同日期名称的数组,然后将我的SQL查询返回的值替换为我的数组中的工作日名称。

但是因为我是一个绝对的初学者,所以我很难找到如何告诉我的PHP脚本替换循环中的MySQL值。

这是我到目前为止的代码,我认为可以通过一些非常简单的方式使用我无法解决的问题:

// An array with the names of the different days in the week in Danish
$daynames = array('Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag');

// My SQL query that fetches the days of the weeks from my timestamps
$query = "SELECT DAYOFWEEK(timestamp), SUM(money) FROM databasetable";
$result = mysqli_query($con,$query) or die(mysql_error());

// My loop that prints the sum of money from each day
while($row = mysqli_fetch_array($result)){
echo "". $row['SUM(money)'] ." on day ". $row['DAYOFWEEK(timestamp)'] ."";
echo "<br />";
}

任何帮助解决这个问题都会非常感激。

2 个答案:

答案 0 :(得分:1)

使用mysql alias或尝试此代码: -

$query = "SELECT DAYOFWEEK(timestamp) day, SUM(money) total FROM databasetable";
$result = mysqli_query($con,$query) or die(mysql_error());
while($row = mysqli_fetch_array($result)){ 

echo $row['total'].' on day '.$daynames[$row['day']];
echo "<br />";

}

答案 1 :(得分:0)

我能够解决这个问题得到上面的好帮助。我使用的确切解决方案就是这样。我已经用添加的评论描述了我所做的更改:

// An array with the names of the different days in the week in Danish
// I had to have a blank value before my daynames in order to get the correct days for the corresponding MySQL values:
$daynames = array('', 'Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag');

// My SQL query that fetches the days of the weeks from my timestamps
$query = "SELECT DAYOFWEEK(timestamp), SUM(money) FROM databasetable";
$result = mysqli_query($con,$query) or die(mysql_error());

// My loop that prints the sum of money from each day
// Added the part that "uses" the array on the values returned from the database
while($row = mysqli_fetch_array($result)){
echo "". $row['SUM(money)'] ." on day ". $daynames[$row['DAYOFWEEK(timestamp)']] ."";
echo "<br />";
}