2013-08-01 2 views
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 воскресенья, я не могу просто умножить на 4 результат, который я получаю в неделю. Как я могу справиться с этой проблемой?

+0

Глядя на ваш код, не существует понятие «месяц», ни «графику доставки». Вы даже не храните «день доставки» в своем дне. Я вижу только «раз/неделю» (с довольно странным синтаксисом?) В вашей таблице «доставка». BTW, есть только одно воскресенье и один четверг в неделю: D –

+0

Вам лучше показать свою инструкцию 'sql'. –

ответ

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; 
     } 
?> 

UPDATE: Следующая функция просто возвращает числовое значение текущего дня/месяца/года.

Так что сегодня является первым четверг августа вернется 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(); 
+0

Да, но как я могу вычислить его автоматически в зависимости от месяца? – csanonymus

+0

, так что вы хотите функцию, которая займет текущий день/месяц/год и просто вернет один номер? – Philwn

+0

Большое спасибо, Phil.Эта последняя функция сделала все ясно :) Еще раз спасибо! – csanonymus

Смежные вопросы