Фильтрация результатов по дате в поле метки времени

Я уже немного помог, но не знаю, почему это не работает.

Я пытаюсь использовать форму, чтобы пользователь мог фильтровать свою активность (которая хранится в БД)

Мой код:

$_GET['from'] = '01/11/2013'; $_GET['to'] = '25/11/2013'; $from = DateTime::createFromFormat('d/m/Y', $_GET['from']); $to = DateTime::createFromFormat('d/m/Y', $_GET['to']); $sql = " SELECT * FROM transfer WHERE personID = $user AND DATE(time) BETWEEN '%s' AND '%s' "; $sql = sprintf($sql, $from->format('Ym-d'), $to->format('Ym-d')); print_r($sql); 

Это печатает SELECT * FROM transfer WHERE personID = 84587749 AND DATE(time) BETWEEN '2013-11-01' AND '2013-11-14'

Когда я запрашиваю это в PHPmyadmin, он показывает запись, однако не отображающуюся на моей странице?

Solutions Collecting From Web of "Фильтрация результатов по дате в поле метки времени"

SQL выглядит нормально, но вы, похоже, не выпустили исполняемый SQL-запрос в базе данных и не получили результаты? Может быть, я что-то упустил, но вам нужно подключиться к вашей базе данных:

 class DBi { public static $mysqli; } DBi::$mysqli = new mysqli('servername', 'database', 'password', 'user'); if (mysqli_connect_error()) { die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); } 

Затем вам нужно выполнить запрос:

 $result = DBi::$mysqli->query($sql) or die ("Unable to execute SQL command:".$sql); 

И, наконец, извлеките и используйте результат:

 $row = $result->fetch_assoc(); echo $row["fieldname"]; 

Вот пример того, как вы распечатываете свои результаты.

 $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();