mysqli — выборка данных из таблицы mysql с использованием php microtime не работает должным образом

Я показываю длинный список деталей продаж из таблицы в 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>";
?>

Я чувствую, что эта проблема связана со значениями меток времени.
Заранее спасибо.

2

Решение

Я бы прокомментировал, но у него все еще не хватает представителя, чтобы сделать это.

Что-то говорит мне, что вы должны использовать 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

0

Другие решения

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.

0

По вопросам рекламы [email protected]