2016-12-15 77 views
1

我正在准备一个大学项目:网上图书销售商店环境。 我有一个PHP页面更新表中的一些值,而另一个PHP页面运行SELECT查询来显示表的值。问题是第一页更新值后,第二页不立即显示更改。显示中的更改生效之前有少量延迟。可能是什么原因?如何解决同样的问题?PHP中的延迟响应页面

P.S.我使用这些PHP页面实现JSON解析为我的Android开发(使用凌空)

第一招:

<?php 

include_once("connect_seller.php"); 
$table= $_GET['pin']; 
$orderid= $_GET['oid']; 
$sellerid= $_GET['id']; 
$orderstatus= $_GET['ostat']; 

$query1 = "SELECT COUNT(status) FROM " . $table . "WHERE order_id='$orderid' AND status=-1"; 

$result = mysqli_query($conn,$query1); 
$res = mysqli_fetch_assoc($result); 

if($res["COUNT(status)"] > 0) 
{ 

    $query = "UPDATE " . $table . "SET order_status='$orderstatus', status='served' , served_by='$sellerid' WHERE order_id='$orderid'"; 


    if(mysqli_query($conn,$query)) 
    { 

     echo '{"maal":[{'; 
     echo '"message":"success"}'; 
     echo ']}'; 
    } 
    else 
    { 
     echo '{"maal":[{'; 
     echo '"message":"error"}'; 
     echo ']}'; 
    } 
} 
else 
{ 
    echo '{"maal":[{'; 
     echo '"message":"taken"}'; 
     echo ']}'; 
} 
?> 

第二个:

<?php 
include_once("connect_seller.php"); 

if(isset($_GET['pin'])) { 

    $table= $_GET['pin']; 

    $query = "SELECT COUNT(status) FROM " . $table . "WHERE status=-1"; 

    $result = mysqli_query($conn,$query); 
    $res = mysqli_fetch_assoc($result); 

    if($res["COUNT(status)"] > 0) 
    { 

     $query1 = "SELECT order_id, timestamp, zip, status, order_status FROM " . $table . "WHERE status=-1"; 

     $result1 = mysqli_query($conn,$query1); 
     $myArray = array(); 

     while($row = $result1->fetch_array(MYSQLI_ASSOC)) { 

      $myArray[] = $row; 
     } 



     echo '{"maal":'; 
     echo json_encode($myArray, JSON_UNESCAPED_SLASHES); 
     echo "}"; 
     } 
     else 
     { 
      echo 'null'; 
     } 
} 
?> 
+0

看不到任何与Android的关系 –

+0

也许只是浏览器缓存。确保从第二页设置一个标题,告诉浏览器不要缓存它。 – GolezTrol

+0

通过PHPMyAdmin或任何你必须确认的数据来检查数据库,如果数据发布后立即实际发生。无论你找到什么,回到我身边。 –

回答

0

你的延迟效应初探也许是你的超高速缓存保留的价值,尝试:

<?php 
    header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); 
    header("Cache-Control: post-check=0, pre-check=0", false); 
    header("Pragma: no-cache"); 
?> 
+0

它不能解决问题。我试过这个:( –

+0

@SaptakDas你可以复制/粘贴请求和响应(第一个和第二个页面)的标头吗?像这样:http://stackoverflow.com/questions/4423061/view-http-headers-在-谷歌铬 –