2011-01-12 1 views
1

Я хотел бы спросить, как я могу сделать php-скрипт, который перекликается с идентификатором данных, хранящихся в базе данных, повторно повторяющимся после определенного времени, например, через 2 минуты. I не хочу использовать cron работу или другой планировщик. Просто php или javascript implmantation. Спасибо заранее.autorepeat php script

+1

Почему вы не хотите использовать работу cron? – DTest

+2

, если вам просто нужна страница для автоматической перезагрузки: [meta refresh] (http://en.wikipedia.org/wiki/Meta_refresh). Если это не то, что вам нужно, уточните свой вопрос. – drudge

+0

Честно говоря, я не знаю, как его использовать. Но это не причина !!! Я предпочитаю реализовать это в php или javascript ... – olaf36

ответ

3

Я сделал схожую с этим скриптом. Пока пользователь находится на странице, он запускает scriptToRun.php каждые 2 минуты.

function changeFeedAddress() { 
    $.ajax({ 
     type: 'get', 
      url: 'scriptToRun.php', 
      success: function(txt) { 
       // do something with the new RSS feed ID here 
      } 
     }); 
    } 

setInterval(changeFeedAddress,120000); // 2 MINUTES 
+1

Предполагается, что он использует JQuery. – dqhendricks

+1

У вас нет проблем с jquery. Сценарий ScriptToRun.php вы упоминаете сам сценарий или имя другого скрипта ??? – olaf36

+0

Нет, 'scriptToRun.php' - еще один скрипт, который живет на сервере. Единственная цель - получить новый идентификатор канала и повторить его обратно. – JakeParis

1

Альтернативные к @JMC Creative (самодостаточным ради пример в):

<?php 
    // check if the $.post below is calling this script 
    if (isset($_POST['ajax'])) 
    { 
    // $data = /*Retrieve the id in the database*/; 

    // ---vvvv---remove---vvvv--- 
    // Example Data for test purposes 
    $data = rand(1,9999); 
    // End Example Data 
    // ---^^^^---remove---^^^^--- 

    // output the new ID to the page so the $.post can see it 
    echo $data; 
    exit; // and stop processing 
    } 
?> 
<html> 
    <head> 
    <title>Demo Update</title> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
    <script type="text/javascript"> 
     $(function(){ 
     // assign a timeout for this script 
     var timeout = 2 * 60000; // 2 minutes 

     // create a function we can call over and over to fetch the ID 
     function updateDBValue(){ 
      // call this same script and retrieve an "id from the database" (see top of page) 
      $.post('<?php echo $_SERVER['PHP_SELF']; ?>',{ajax:true},function(data){ 
      // 'data' now contains the new ID. For example's sake, place the value 
      // in to an input field (as shown below) 
      $('#db-value').val(data); 

      // set a timer to re-call this function again 
      setTimeout(updateDBValue,timeout); 
      }); 
     } 

     // call the function initially 
     updateDBValue(); 
     }); 
    </script> 
    </head> 
    <body style="text-align:center;"> 
    <div style="margin: 0 auto;border:1px solid #000;display:block;width:150px;height:50px;"> 
     DB Value:<br /> 
     <input type="text" id="db-value" style="text-align:center;" /> 
    </div> 
    </body> 
</head> 
1

Почему бы просто не сделать это?

<?php 
header('refresh: 600; url=http://www.yourhost.com/yourscript.php'); 

//script here 
?> 

Если вы произвольно генерируете свой идентификатор изнутри скрипта ... это будет работать нормально. Страница будет обновляться каждые 10 минут.

+0

Если это должно быть в порядке или что-то использовать '$ _SESSION ['id'] = LASTID', когда страница обновляется, у вас все еще есть свой последний идентификатор, который вы использовали –