Question

i would like to ask how can i make a php script which echoes the id of the data stored in a database repeat itself after specific time for example after 2 minutes.i don't want to use a cron job or another scheduler.Just php or javascript implemantation.Thanks in advance..

Was it helpful?

Solution

I've done similar with this script. While the user is on the page, it runs scriptToRun.php every 2 minutes.

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

OTHER TIPS

Alternate to @JMC Creative (Self-contained for example's sake):

<?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>

Why not just do this?

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

//script here
?>

If your generating your ID at random from within the script...this will work fine. The page will refresh itself every 10 minutes.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top