2013-09-20 2 views
-1

Я делаю этот инструмент анимации, где я извлекаю значение из своей базы данных, а затем изображение будет анимироваться в определенной позиции. Мой вопрос в том, можно ли получать данные постоянно или как каждые 5 секунд?Извлекают из базы данных

Как-то вроде этого:

while(autoretreive){ 
$data = mysql_query("select * from ......"); 
} 

ОБНОВЛЕНО здесь

Спасибо за ваши ответы! Сделал это немного яснее, что делать! Может быть, я могу лучше объяснить, что я делаю в своем коде.

Я делаю эту программу анимации, как сказано, где шары с информацией перемещаются в разные места. У меня есть одно значение, которое будет часто обновляться в базе данных, и назовите его «город».

Сначала на предыдущей странице я выкладываю шарики информации, которую я хочу на основе «город» и я, как это (упрощенный):

$pid = $_POST['id']; 
$pcity[0] = $_POST['city']; 
$pcity[1] = $_POST['city']; 
$pcity[2] = $_POST['city']; 
//... 

$while(autoretrieve) { // HOW TO? 

$data = mysql_query(select * from table where city == $pcity[0] OR $pcity == [1] //...); 

while($rows = mysql_fetch_array($data)){ 

$city = $rows['city']; 
$id = $rows['id']; 

if($city == example1){ 
"animate to certain pos"; //attached to image 
} 
else if($city == example2){ 
"animate to certain pos"; //attached to image 
} 
} 
} 

Таким образом, для каждого обновления в базе данных изображения будет анимировать в новую позицию. Таким образом, временной интервал в 5 секунд был бы большим. Я не эксперт в области кодирования, так что извините за устаревший код. Не так хорошо знакомы с AJAX, так что будет импортировано в код? Также важно, чтобы страница не перезагружалась. Просто извлечение из базы данных.

+0

вы можете использовать ajax для вызова вашего php-скрипта каждые 5 секунд – Paddyd

+0

Или просто сначала выберите все значения и сохраните их в массиве, затем напишите алгоритм обновить позицию со следующим значением в массиве каждый 5 секунд – Paddyd

+0

Это нужно сделать на клиенте с простой страницей, которая возвращает данные, которые можно вызывать регулярно. – Archer

ответ

-1

Вы можете использовать функцию sleep, чтобы контролировать, как часто вы хотите получать данные.

while(autoretreive){ 
    $data = mysql_query("select * from ......"); 
    //output your data here, check more in link about server sent events bellow 
    sleep(5); 
} 

Поскольку вы не указали, как вы собираетесь получить доступ к данным, я пишу этот ответ, предполагая Server-Sent Events как они являются только те, которые имеют смысл в соответствии с вашим вопросом.

Теперь все это по вашему вопросу, который был не очень ясен, как вы планируете использовать данные. Опять же, вы, скорее всего, захотите извлечь данные с помощью ajax, но Server Sent Events также может быть хорошим способом добиться этого.

И не используйте mysql_ * это устаревшее, переключатель PDO или mysqli_ *

+0

Даже если это ответ на ваш вопрос, возможно, вариант ajax - это то, что вам действительно нужно. – Dexa

+0

Это будет ждать 5 секунд между каждым запросом, а не отправлять их обратно клиенту каждые 5 секунд. В основном это приведет к тому, что ответ сервера будет зависать до тех пор, пока не будет выполнено autoretrieve. – Archer

+0

@Archer это был общий пример для OP, но если вы хотите перейти более подробно, это возможно с помощью [Server-Sent Events] (https://developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_events), например. – Dexa

0

вы можете сделать это с помощью AJAX и JavaScript сделать одну яваскрипт функции, которая содержит код Ajax для retrive данных из базы данных

и при загрузке страницы с помощью setTimeout вызовите функцию ajax каждые 5 секунд

Смежные вопросы