我是编程新手,所以我的问题可能有一个简单的解决方案。
我想要完成的是在MySQL列中找到重复的字段条目,条目将是日期示例01/20/13
我需要搜索日期字段并确定日期有多少重复条目,然后找出我需要创建一个循环,将日期更改为日期的日期名称然后在.
.
和一个数字
所以例如01/20/13
是星期日所以在我的数据库示例中有4个重复的条目,所以输出需要Sunday.1, Sunday.2, Sunday.3, Sunday.4
我在下面的PHP程序中使用此功能,但我需要它在7天范围示例01/20/13 - 01/26/13
中搜索重复项,从星期日开始到星期六结束。我不想硬编码一周价值的日期值。这就是我的问题所在,我不知道从哪里开始我被卡住了。我只能想到为了获得理想的结果而对数周的价值进行硬编码,但我知道有一种更简单的方法。
我的PHP代码:
<?php
require '../TimeCard/DB.php';
$i = 1;
try{
$stmt = $conn->prepare('SELECT `date` FROM `timeRecords` WHERE `employeeID`= 1 ORDER BY date ');
$stmt->execute();
} catch(PDOException $e){
echo'ERROR: ' . $e->getMessage();
}
while($row = $stmt->fetch())
{
if ($row['date'] == "01/20/13"){
$date = date("l", strtotime($row['date']));
$$date = "Hello today is " . $date . "." . $i . "<br>";
echo $Sunday;
$i++;
}
}
?>
数据库:
+----+------------+----------+--------+-------------------+-----------+------------+-----------+---------+
| id | employeeID | date | timeIn | jobDescription | equipType | unitNumber | unitHours | timeOut |
+----+------------+----------+--------+-------------------+-----------+------------+-----------+---------+
| 10 | 1 | 01/20/13 | 20:30 | Blah1 | | 01E | NULL | NULL |
| 2 | 1 | 01/20/13 | 1:00 | Test | | 02S | NULL | NULL |
| 9 | 1 | 01/20/13 | 13:00 | Blah12 | | 02E | NULL | NULL |
| 8 | 1 | 01/20/13 | 6:00 | Blah | | 02D | NULL | NULL |
| 1 | 1 | 01/21/13 | 09:12 | Worked in hubbard | Excavator | 01E | 8375 | 09:14 |
| 3 | 1 | 01/22/13 | | | | NULL | NULL | NULL |
| 4 | 1 | 01/23/13 | | | | NULL | NULL | NULL |
| 5 | 1 | 01/24/13 | | | | NULL | NULL | NULL |
| 6 | 1 | 01/25/13 | | | | NULL | NULL | NULL |
| 7 | 1 | 01/26/13 | | | | NULL | NULL | NULL |
+----+------------+----------+--------+-------------------+-----------+------------+-----------+---------+
答案 0 :(得分:0)
你的方法似乎太复杂了。查找今天的日期和给定的员工。
SELECT date, COUNT(*) FROM timeRecords
WHERE employeeID = 1 AND date BETWEEN DATE_SUB(NOW(),INTERVAL 1 WEEK) AND NOW()
GROUP BY date
ORDER BY date DESC
答案 1 :(得分:0)
试试这个:
select `date`,DATE_FORMAT(str_to_date(`date`,'%m/%d/%y'),'%W') as ddd from timeRecords where `employeeID` = 1
and str_to_date('01/20/13','%m/%d/%y') between str_to_date('01/20/13','%m/%d/%y') and date_add(str_to_date('01/20/13','%m/%d/%y'),interval 1 week);
替换&#39; 01/20/13&#39;的值你想要的日期。