2013-11-14 3 views
0

Я пытаюсь отфильтровать результаты из базы данных MySQL, но не имеет большой удачи.Фильтр по времени и дате

Пользователь будет заполнить форму, с от и до настоящего времени (например, от 01/11/2013 К 14/11/2013)

Вот мой код, чтобы фильтровать результаты:

$dbserver = "localhost"; 
$dbname = "nameofDB"; 
$dbusername = "username"; 
$dbpassword = "password"; 

$mysqli = new mysqli($dbserver, $dbusername, $dbpassword, $dbname); 

$query = "SELECT * FROM transfer WHERE personID = 84587749 AND DATE(time) BETWEEN ? AND ?"; 

if($stmt = $mysqli->prepare($query)){ 

    /* 
    Binds variables to prepared statement 


    i corresponding variable has type integer 
    d corresponding variable has type double 
    s corresponding variable has type string 
    b corresponding variable is a blob and will be sent in packets 
    */ 

    $to = $_POST['to']; 
    $from = $_POST['from']; 

    $stmt->bind_param('ss', $from, $to); 


    /* execute query */ 
    $stmt->execute(); 

    /* Get the result */ 
    $result = $stmt->get_result(); 

    while ($row = $result->fetch_assoc()) { 
     // Configure this how you want to print out each row. 
     echo 'Details: '.$row['details'].'<br>'; 
     echo 'Time: '.$row['time'].'<br>'; 
     echo 'Balance: '.$row['balance'].'<br>'; 
     echo '<br><br>'; 
    } 

    /* free results */ 
    $stmt->free_result(); 

    /* close statement */ 
    $stmt->close(); 
} 

/* close connection */ 
$mysqli->close(); 

Это не показывает результатов, может ли кто-нибудь помочь?

ответ

0

Каковы значения, которые вы получаете от $ _POST? Если они не соответствуют точно стандартной строке даты/времени mysql, например.

yyyy-mm-dd 

Тогда вы не можете напрямую вводить эти значения $ _POSt в свой запрос без соответствующей логики перевода.

например.

... WHERE DATE(time) BETWEEN 'Jan 31' and 'Feb 28' 

не является корректным сравнение, но

... WHERE DATE(TIME) BETWEEN '2013-01-31' and '2013-02-28' 

IS действует.

+0

Пользователь добавит даты в формате 'dd-mm-yyyy'? –

+0

@ user2149630: почему вы задаете один и тот же вопрос снова и снова? Вы уже знаете, как конвертировать форматы даты. http://stackoverflow.com/a/19987026/67332 и http://stackoverflow.com/q/19988027/67332 –

+0

@ Glavić - потому что никто, кажется, не знает, как заставить это работать из формы, разве это не возможное? –

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