1

私は農場で配達員として働いており、何リットルの牛乳を誰かに届けるか、いつ、彼らが最後にいくら支払う必要があるかなど、すべてを記録したある種のノート (ラップトップではない) を持っています。すべてを追跡し、ノートを捨てるための何らかのアプリケーションを作成したいと考えています。私はこれにHTML、PHP、およびMySQLを使用しています。これは私が今まで持っているものです:

This is the form:
 <html>
<body>

<form action="insert.php" method="post">
<table border="0"><tr>
<td>Name: </td><td><input type="text" name="name"></td>
</tr><tr>
<td>Multiplier:</td><td><input type="text" name="multiplier"/></td></tr><tr>
<td>Sunday</td><td><input type="checkbox" name="values[]" value="1" /></td></tr><tr>
<td>Monday</td><td><input type="checkbox" name="values[]" value="2" /> </td></tr><tr>
<td>Tuesday</td><td><input type="checkbox" name="values[]" value="3" /></td></tr><tr>
<td>Wednesday</td><td><input type="checkbox" name="values[]" value="4" /></td></tr><tr>
<td>Thursday</td><td><input type="checkbox" name="values[]" value="5" /></td></tr><tr>
<td>Friday</td><td><input type="checkbox" name="values[]" value="6" /></td></tr><tr>
<td>Saturday</td><td><input type="checkbox" name="values[]" value="7" /></td></tr><br>
<td><input type="submit" value="Add"></td></tr>
</form>

</body>
</html>

*乗数は、私が毎回その人に何リットルの水を提供するかです (通常、量は毎回同じです)。

これを使用して、この PHP スクリプトを使用してデータベースに新しい人を追加しています。

<?php
$con=mysqli_connect("","root","","Lapte");
//Check if connected
if(mysqli_connect_errno()){
    echo "Failed to connect to database: ".mysqli_connect_errno();
}
$name=$_POST['name'];
$days=sizeof($_POST['values']);
$multiplier=$_POST['multiplier'];
$days=$days*$multiplier;
$totalPerWeek=$days*2.5;


$sql="INSERT INTO deliveries (Name, Times/Week, Pay)
VALUES
('$name','$days','$totalPerWeek')";

if(!mysqli_query($con,$sql)){
    die('Error: '.mysqli_error($con));
}
    echo "$name added to database.";
mysqli_close($con);
?>

ローカル サーバーに EasyPHP を使用しており、データベースが既に作成されています。

今、私のジレンマは次のとおりです。たとえば、牛乳をミスターに届けなければならない場合。X は日曜日と木曜日ですが、今月は木曜日が 5 回あり、日曜日は 4 回しかありません。1 週間の結果を 4 倍することはできません。この問題にどう対処すればよいですか?

4

1 に答える 1

2

以下の関数を使用して月と年を指定すると、各曜日の配列がその月の金額を表す値とともに返されます。

        <?php
            function calculateDays($month, $year) {
                //how many days in given month
                $TotalDays = cal_days_in_month(CAL_GREGORIAN, $month, $year);

                $DayCount = array();

                for ($i = 1; $i <= $TotalDays; $i++) {
                    //for each day (1st to 30th/31st) get the weekday
                $DayOfWeek = date('l', mktime(0, 0, 0, $month, $i, $year));
                //add 1 to the counter
                $DayCount[$DayOfWeek]++;
                }
                return $DayCount;
            }
    ?>

または、以下の関数を使用して、月と年だけでなく日を指定すると、その月に指定された日が何回出現するかの数値が返されます。

      <?php
        function countDayinMonth($day, $month, $year) {
            //how many days in given month
            $TotalDays = cal_days_in_month(CAL_GREGORIAN, $month, $year);

            $Count = 1;

            for ($i = 1; $i <= $TotalDays; $i++) {
            if ($day == date('l', mktime(0, 0, 0, $month, $i, $year)))
            //add 1 to the counter
            $Count++;
            }
            return $Count;
        }
?>

更新: 次の関数は、現在の日/月/年の数値を返します。

したがって、今日は 8 月 1 日木曜日で、5 が返されます。

        function countDayinMonth() {
        $day = date('l');
        $month = date('n');
        $year = date('Y');
        //how many days in given month
        $TotalDays = cal_days_in_month(CAL_GREGORIAN, $month, $year);

        $Count = 0;

        for ($i = 1; $i <= $TotalDays; $i++) {
        if ($day == date('l', mktime(0, 0, 0, $month, $i, $year)))
        //add 1 to the counter
        $Count++;
        }
        return $Count;
    }

    echo countDayinMonth();
于 2013-08-01T10:55:45.630 に答える