странное поведение mysql на отметке времени - PullRequest
0 голосов
/ 21 февраля 2012

Пожалуйста, посмотрите на этот запрос MySQL. То, что должно сделать, довольно просто - перечислить даты, созданные из отметок времени не старше 10 дней.

Работает, но не идеально ...

  • Если у меня совпадает только 1 отметка времени, у меня будет 0 результатов.
  • Если у меня совпадают 2 метки времени, у меня будет 1 результат.
  • если у меня совпадают 3 метки времени, у меня 2 результата
  • ... и так далее ...

Таким образом, самая новая отметка времени в таблице всегда игнорируется запросом, ПОЧЕМУ?!

$timestamp_now = date('U');
$timestamp_10_day_back = $timestamp_now - 864000;

mysql_select_db("$db_visitors");
$sql = "SELECT DATE(FROM_UNIXTIME(visitors_timestamp))
        FROM visitors
        WHERE visitors_timestamp > $timestamp_10_day_back
        ORDER BY visitors_timestamp DESC";
$sql = mysql_query($sql);
$row = mysql_fetch_array($sql);

while($row = mysql_fetch_array($sql)) {
    echo $row[0] . "<br>";
}

Ответы [ 3 ]

7 голосов
/ 21 февраля 2012

Просто удалите

$row = mysql_fetch_array($sql);

... что глотает ваш первый результат

1 голос
/ 21 февраля 2012

Первая строка игнорируется из-за строки $row = mysql_fetch_array($sql);, затем вы вызываете ее снова в цикле while. просто удалите этот ряд.

0 голосов
/ 21 февраля 2012

попробуйте код, следующий за

$n=count($row);
if($n>0){
 for($i=0;$i<$n;$i++){
   echo $row[i];}}

или

print_r($row);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...