PHP MySQL - ограничить результат запроса по разнице во времени - PullRequest
1 голос
/ 23 марта 2012

Это будет пример таблицы базы данных:

enter image description here

PHP-скрипт должен ограничивать результат запроса между NOW и временем до 30 секунд

Чтобы быть понятным:

В настоящее время 2012-03-23 03:28:00 и база данных соответствует описанию, приведенному в примере, resoult должен быть: "guest"

Это часть PHP-скрипта.

<?php
    $con = mysql_connect("localhost", "user", "pass");
    if (!$con) {
        die('Could not connect: '.mysql_error());
    }

    mysql_select_db("db", $con);

    $result = mysql_query('SELECT * FROM table LIMIT BY ...???...... ');
        while ($row = mysql_fetch_array($result)){
         echo $row['username'];
        }

    mysql_close($con);
?>

Ответы [ 3 ]

4 голосов
/ 23 марта 2012

Вы не хотите LIMIT, вы хотите WHERE

$result = mysql_query(
'SELECT * FROM table WHERE `timestamp` > NOW()- INTERVAL 30 SECOND '
);

В SQL предложение LIMIT выполняет весь запрос и затем принимает только определенный «диапазон» последовательных строк. Вы можете сказать «Первые 50» или «От 20 до 30».

Предложение WHERE ограничивает запрос определенными критериями, такими как содержимое поля. Это то, что вы хотите здесь.

2 голосов
/ 23 марта 2012
... WHERE (unix_timestamp(NOW()) - unix_timestamp(timestamp))<30 ..

OR

WHERE TIME_TO_SEC(TIMEDIFF(NOW(), timestamp))<30
1 голос
/ 23 марта 2012
    $result = mysql_query('SELECT * FROM table where date_sub(now(), timestamp ) < your_time_interval ');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...