2015-06-07 7 views
2

Мое ниже PHP извлекает данные из базы данных для настоящих данных, если они существуют в таблице Sql, используя дату часового пояса и идентификатор, чтобы выбрать дату для текущей даты.Выбрать Данные на основе даты из базы данных

Но;

Я хочу, чтобы выбрать текущую неделю данные в том смысле, если сегодня воскресенье он должен получать данные с понедельника по сегодняшний день, существуют ли данные в таблице против этого идентификатора

Моя таблица базы данных является следующим

 Date    Id    Data to be fetched 

2014-08-29 00:00:00  12345      ABC 
2014-08-29 00:00:00  12345      ABC 
2014-08-30 00:00:00  12345      ABC 
2014-08-31 00:00:00  12345      ABC 
2014-08-31 00:00:00  12345      ABC 
2014-08-02 00:00:00  12345      ABC 
2014-08-02 00:00:00  12345      ABC 
2014-08-02 00:00:00  12345      ABC 
2014-08-03 00:00:00  12345      ABC 
2014-08-03 00:00:00  12345      ABC 
2014-08-04 00:00:00  12345      ABC 
2014-08-04 00:00:00  12345      ABC 

PHP: код

<?php 

    // This is used to select Time Zone 
date_default_timezone_set("Indian/Chagos"); 
     $date= date("y-m-d 00:00:00"); 

     //Databse Connection 
       $mysqli=mysqli_connect('localhost','root','password','db'); 
    //Data From Ajax For Id to select data against that id 

      $id= $_POST['storedValue']; 
       //Sql Query 
                   //Select data against date and PK Id 
     $query ="SELECT * FROM master WHERE StudentRegID='$id' And AttendanceDate='$date' "; 
$result = mysqli_query($mysqli,$query)or die(mysqli_error()); 
$num_row = mysqli_num_rows($result); 
      while($row=mysqli_fetch_array($result)) 
    { 
      //Echo result 
     echo "{ y: ".$row[9]." ,label: '".$row[6]."'},"; 
    } 
    mysqli_close($mysqli); 

?> 

Это не работает:

Можете ли вы определить, где я ошибаюсь?

$id= $_POST['storedValue']; 
     $query ="SELECT * FROM master WHERE StudentRegID='$id' AND DATEDIFF(NOW(), Date) < 7 "; 
$result = mysqli_query($mysqli,$query)or die(mysqli_error()); 
$num_row = mysqli_num_rows($result); 
      while($row=mysqli_fetch_array($result)) 
    { 



     echo "{ y: ".$row[9]." ,label: '".$row[6]."'},"; 




    } 
+0

@Strawberry Sry я вмятина получить у – Abdul

ответ

0

Вы можете использовать DATEDIFF между колонной Date и текущей датой и считывают только линию, где разница составляет менее 7, как:

SELECT * [...] 
WHERE StudentRegID='$id' AND DATEDIFF(NOW(), Date) < 7 
-- if you want only the lines where something happened today : 
AND DATE(AttendanceDate) = DATE('$date') 
; 
+0

это Gona показать все данные Weak – Abdul

+0

Это не значит, что вы обновляете условие WHERE. Я добавил правило для StudentRegId. Таким образом, он вернет строку, соответствующую одному идентификатору студента за последние 7 дней. – glefait

+0

Может ли у вас репетировать мой вопрос Iam не получается, если u Не против – Abdul

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