Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从mysql数据库自动更新xml提要而不刷新页面_Php_Mysql_Xml - Fatal编程技术网

Php 从mysql数据库自动更新xml提要而不刷新页面

Php 从mysql数据库自动更新xml提要而不刷新页面,php,mysql,xml,Php,Mysql,Xml,我必须使用php代码从mysql数据库开发一个xml提要。在这里,我必须插入或更新mysql数据库中的任何数据,这意味着插入和更新的数据会自动更改,并插入到我的xml提要中,而无需刷新页面。我如何开发这个。请帮助我 我使用了以下代码: $catname=func_query_first_cell("select status from $sql_tbl[orders] where status='Q'"); $file= fopen("orderdetails1.xml", "w");

我必须使用php代码从mysql数据库开发一个xml提要。在这里,我必须插入或更新mysql数据库中的任何数据,这意味着插入和更新的数据会自动更改,并插入到我的xml提要中,而无需刷新页面。我如何开发这个。请帮助我

我使用了以下代码:

$catname=func_query_first_cell("select status from $sql_tbl[orders] where status='Q'");
     $file= fopen("orderdetails1.xml", "w");        
     $_xml ="<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\r\n"; 
     $_xml .="\t<Feed>\r\n";
     $_xml .="\t<order>\r\n";

$_xml .="\t<status>" .htmlspecialchars($catname,ENT_QUOTES). "</status>\r\n";   
$page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]);
$limit = 2;
$startpoint = ($page * $limit) - $limit;
$statement = "`xcart_orders` where `active` = 1";    
$counterr=0;
$r=func_query("select * from $sql_tbl[orders] LIMIT {$startpoint}, {$limit}");
foreach($r as $n)
 {
$products=func_query_first("select * from $sql_tbl[orders] where status='Q'");
 $products=func_query_first("select product from $sql_tbl[order_details] where orderid=$n[orderid]");

$infeed_counter++;

 echo $manufacturer."=====";

if($row[avail]>0)
                $avail='Y'; 
            else 
                $avail='N'; 


$_xml .="\t<Order>\r\n";
  $_xml .="\t<orderid>" .$n[orderid]. "</orderid>\r\n";
   $_xml .="\t<login>" .  htmlspecialchars(strip_tags(substr($n[login],0,50)) , ENT_QUOTES ). "</login>\r\n";   
$_xml .="\t<total>" . $n[total]. "</total>\r\n";
    $_xml .="\t<product>" .  $products[product]. "</product>\r\n";
    $_xml .="\t</Order>\r\n";   
}

    $_xml .="\t</order>\r\n";   
    $_xml .="\t</Feed>\r\n";    
fwrite($file, $_xml);       
 fclose($file);     
echo "XML version of products available here with $infeed_counter products.  <a href=\"orderdetails1.xml?page=$page\">View the XML.</a>";
     exit;
     ?>
$catname=func\u query\u first\u单元格(“从$sql\u tbl[orders]中选择状态,其中status='Q');
$file=fopen(“orderdetails1.xml”,“w”);
$\u xml=“\r\n”;
$\u xml.=“\t\r\n”;
$\u xml.=“\t\r\n”;
$\u xml.=“\t”.htmlspecialchars($catname,ENT\u引号)。“\r\n”;
$page=(int)(!isset($_GET[“page”])?1:$_GET[“page”]);
$limit=2;
$startpoint=($page*$limit)-$limit;
$statement=“`xcart\u orders`其中`active`=1”;
$counter=0;
$r=func_query(“从$sql_tbl[orders]LIMIT{$startpoint},{$LIMIT}中选择*);
foreach($r为$n)
{
$products=func\u query\u first(“从$sql\u tbl[orders]中选择*,其中status='Q');
$products=func_query_first(“从$sql_tbl[order_details]中选择产品,其中orderid=$n[orderid]”;
$infeed_计数器++;
echo$制造商。“=======”;
如果($row[avail]>0)
$avail='Y';
其他的
$avail='N';
$\u xml.=“\t\r\n”;
$\u xml.=“\t”。$n[orderid]。“\r\n”;
$\u xml.=“\t”.htmlspecialchars(带标签(substr($n[login],0,50)),ENT\u引号)。“\r\n”;
$\u xml.=“\t”。$n[总计]。“\r\n”;
$\u xml.=“\t”。$products[产品]。”\r\n;
$\u xml.=“\t\r\n”;
}
$\u xml.=“\t\r\n”;
$\u xml.=“\t\r\n”;
fwrite($file,$\uxml);
fclose($文件);
echo“此处提供的产品的XML版本和$infeed_计数器产品。”;
出口
?>
现在我得到了以下xml提要:

<Feed>
<order>
<status>Q</status>
<Order>
   <orderid>1</orderid>
        <login>krishna</login>
        <total>399.99</total>
        <product>Designing Web Usability</product>
</Order>
 <Order>
        <orderid>65</orderid>
        <login>krishna</login>
        <total>399.99</total>
        <product>Three Stone Princess Cut Diamond Ring</product>
  </Order>
 <Order>
          <orderid>2</orderid>
          <login>krishna</login>
          <total>34.65</total>
           <product>Three Stone Princess Cut Diamond Ring</product>
</Order>

Q
1.
克里希纳
399.99
设计网页可用性
65
克里希纳
399.99
三石公主切割钻石戒指
2.
克里希纳
34.65
三石公主切割钻石戒指

现在,我希望将mysql数据库中orderid=1的总数从399.99更改为500.00意味着必须刷新页面。然后,这里只更改了我的xml提要。但我希望解决的问题是,数据库更改会自动更新到我的xml提要上,而不刷新页面。请帮助我。我如何开发此功能。

您需要使用一种技术称为长轮询。长轮询使连接在一定时间内保持打开状态。在此期间,它检查数据库中是否有任何更改。如果是,它将断开连接并将这些更改发送到前端。然后立即启动另一个连接。您可以在这里找到更多信息

试着这样做: feed.php

$catname=func\u query\u first\u单元格(“从$sql\u tbl[orders]中选择状态,其中status='Q');
$file=fopen(“orderdetails1.xml”,“w”);
$_xml=“”;
$_xml.=“”;
$_xml.=“”;
$\u xml.=“”。htmlspecialchars($catname,ENT_引号)。"";
$page=(int)(!isset($_GET[“page”])?1:$_GET[“page”]);
$limit=2;
$startpoint=($page*$limit)-$limit;
$statement=“`xcart\u orders`其中`active`=1”;
$counter=0;
$r=func_query(“从$sql_tbl[orders]LIMIT{$startpoint},{$LIMIT}中选择*);
foreach($r为$n)
{
$products=func\u query\u first(“从$sql\u tbl[orders]中选择*,其中status='Q');
$products=func_query_first(“从$sql_tbl[order_details]中选择产品,其中orderid=$n[orderid]”;
$infeed_计数器++;
//echo$制造商。“=======”;
如果($row[avail]>0)
$avail='Y';
其他的
$avail='N';
$_xml.=“”;
$\u xml.=''.$n[orderid]。'';
$\u xml.=''.htmlspecialchars(strip_标记(substr($n[login],0,50)),ENT_引号)。'';
$\u xml.=''.$n[总计]。'';
$\u xml.=''.$产品[产品]。'';
$_xml.=“”;
}
$_xml.=“”;
$_xml.=“”;
标题(“内容类型:text/xml”);
echo$\uxml;
在XML提要URL访问中,如下所示:


只有页面被刷新时,才会刷新XML提要。在什么情况下需要此自动刷新功能?因为无论何时访问此xml提要的链接,它都会生成更新的数据。那么,请解释一下您需要此功能的情况?我是android开发的。在这里我必须使用xml解析。因此,我必须使用php代码从mysql数据库开发xml提要。在这里,如果我必须更改mysql数据库上的数据,则意味着它将在我的xml提要上自动更新。然后,只有更新的数据才会显示在android mobile上。否则,它将显示以前的数据仅xml提要数据。是。因此,每当您访问xml提要链接时,它只会给您更新的数据。为此,您无需将其另存为文件。只需在php页面中设置xml头并直接访问它。我希望运行xml提要,只包含xml链接。此处不应使用php链接。当您使用feed.xml时不应使用,它是一个静态文件,所以每次需要使用cron作业创建此文件时。否则,您无法自动创建这些文件。相反,您可以将其创建为feed.php并将标题设置为XML,然后像往常一样调用,这样会很好地工作。我如何将其创建为feed.php并将标题设置为XML。请给我一些编码部分。因为我不懂。我是phpI的初学者,已经编写了上面创建XML提要的代码。创建一个feed.php文件,将上述代码放入该文件中,并在浏览器中运行。在android应用程序中提供相同的URL以访问此提要。。唯一需要做的就是不要将提要保存为静态XML文件。
$catname = func_query_first_cell("select status from $sql_tbl[orders] where status='Q'");
$file = fopen("orderdetails1.xml", "w");
$_xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>";
$_xml .= "<Feed>";
$_xml .= "<order>";

$_xml .= "<status>" . htmlspecialchars($catname, ENT_QUOTES) . "</status>";
$page = (int)(!isset($_GET["page"]) ? 1 : $_GET["page"]);
$limit = 2;
$startpoint = ($page * $limit) - $limit;
$statement = "`xcart_orders` where `active` = 1";
$counterr = 0;
$r = func_query("select * from $sql_tbl[orders] LIMIT {$startpoint}, {$limit}");
foreach ($r as $n)
{
    $products = func_query_first("select * from $sql_tbl[orders] where status='Q'");
    $products = func_query_first("select product from $sql_tbl[order_details] where orderid=$n[orderid]");

    $infeed_counter++;

    // echo $manufacturer."=====";

    if ($row[avail] > 0)
        $avail = 'Y';
    else
        $avail = 'N';


    $_xml .= "<Order>";
    $_xml .= "<orderid>" . $n[orderid] . "</orderid>";
    $_xml .= "<login>" . htmlspecialchars(strip_tags(substr($n[login], 0, 50)), ENT_QUOTES) . "</login>";
    $_xml .= "<total>" . $n[total] . "</total>";
    $_xml .= "<product>" . $products[product] . "</product>";
    $_xml .= "</Order>";
}

$_xml .= "</order>";
$_xml .= "</Feed>";

header ("Content-Type:text/xml"); 
echo $_xml;