Я показываю длинный список деталей продаж из таблицы в MySQL.
Проблема в том, что я могу получать данные только за месяц. Как только месяц меняется, он ничего не отображает.
Например: данные отображаются с 05.05.2015 по 30.05.2015, но с 06.01.2015 ничего не отображается.
Я добавляю значения меток времени для каждой продажи в базу данных, используя следующий код:
$time = round(microtime(true)*1000);
Остальная часть кода здесь:
<?php
include 'connect.php';
$timestamp = "";
$return = array();
$response = "";
$sql = "SELECT * FROM receipts ORDER BY timestamp DESC LIMIT 1";
$result1 = mysqli_query($db, $sql);
if($details = mysqli_fetch_array($result1)){
$timestamp = $details['timestamp'];
}
$sql = "SELECT * FROM sales WHERE timestamp>'$timestamp' ORDER BY date ASC";
$result = mysqli_query($db, $sql);
echo "<table class=table1>";
while($fetch_options=mysqli_fetch_array($result)){
$memo=$fetch_options['memo'];
$product=$fetch_options['pid'];
$qty=$fetch_options['qty'];
$amount=$fetch_options['amt'];
echo "<tr>";
echo "<td align=center>$memo</td>
<td align=center>$product</td>
<td align=center>$qty</td>
<td align=center>$amount</td>";
echo "</tr>";
}
echo "</table>";
?>
Я чувствую, что эта проблема связана со значениями меток времени.
Заранее спасибо.
Я бы прокомментировал, но у него все еще не хватает представителя, чтобы сделать это.
Что-то говорит мне, что вы должны использовать time()
вместо microtime()
time()
вернет время в секундах как INT. microtime()
даст вам время в микросекундах как STRING или как FLOAT, используя true в качестве первого параметра => microtime(true)
Как я вижу, ты умножаешь microtime()
на 1000. Это даст вам так же, как time()
,
Попробуйте использовать time()
вместо round(microtime()*1000)
,
http://php.net/manual/en/function.microtime.php В.С.
http://php.net/manual/en/function.time.php
Mysql хранит даты в следующем формате в базе данных:
ГГГГ-ММ-ДД ЧЧ: ММ: СС.ССС
Поэтому, если вы хотите включить дату в вашу базу данных, пожалуйста, используйте этот формат. Система сортировки будет работать, когда вы это сделаете.
Пример использования даты PHP
$date = date("Y-m-d H:i:s");
$sql = "INSERT INTO example ('date', 'some_random_val') VALUES ($date, 'value2')";
Пример использования даты MYSQL CURDATE (для текущей даты)
$sql = "INSERT INTO example ('date_name', 'date', 'some_random_val') VALUES ('DATE: Auto CURDATE()', CURDATE(), 'value2')";
Я предпочитаю решение с использованием даты php.