Проблема запроса PDO MySQL - PullRequest
       14

Проблема запроса PDO MySQL

1 голос
/ 25 августа 2011

Я создаю сайт входа / регистрации с PDO просто для удовольствия на wamp ...

В настоящее время я создаю онлайн-страницу пользователей, когда пользователь заходит на любую страницу участника, он обновляет столбец, называемый онлайн вмоя таблица mysql с отметкой времени unix.

На странице пользователей в сети я пытаюсь найти и показать всех пользователей, которые соответствуют требованиям для участия в сети, которые активны в последние десять минут.Пока у меня есть это ...

$online_users = time() - 600;

$q = $dbc -> prepare("SELECT * FROM accounts WHERE online > ?");
$q -> execute(array($online_users));
$online_user = $q -> fetch(PDO::FETCH_ASSOC);

while ($q) {
echo '<p> ' . $player_details['username'] . ' is online.</p>';
}

Проблема, с которой я сталкиваюсь, заключается в том, что она циклически повторяется снова и снова, я хотел бы, чтобы она однажды перебирала таблицу и отображала всех пользователей, которыеMySQL запрос только один раз ...

Я новичок в PDO и самообучаюсь, поэтому, если это что-то действительно глупое, извините, пожалуйста!

Заранее спасибо ...

Ответы [ 2 ]

2 голосов
/ 25 августа 2011

Не читайте сначала один раз, а потом зацикливайтесь:

$online_user = $q -> fetch(PDO::FETCH_ASSOC);
while ($q) {

Вместо этого читайте на каждой итерации цикла:

while ($online_user = $q -> fetch(PDO::FETCH_ASSOC)) {

Кроме того, не забудьте htmlspecialchars() соответственно.

0 голосов
/ 25 августа 2011

Также вы используете следующий код:

$online_users = $q->fetchAll(PDO::FETCH_ASSOC);
foreach($online_users as $user) {
    echo '<p> ' . $user['username'] . ' is online.</p>';
}
...