0

PHP コードを使用して mysql データベースから 1 つの 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;
     ?>

今、私は以下の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>

ここで、mysql データベースの orderid=1 の合計 399.99 を 500.00 に変更したいということは、ページを更新する必要があることを意味します。次に、xml フィードのみがここで変更されます。しかし、データベースの変更が自動的に更新されるという解決策が必要です。ページを更新せずに xml フィードを作成します。助けてください。これを開発するにはどうすればよいですか。

4

2 に答える 2

1

このようにしてみてください:feed.php

$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;

XML フィードの URL アクセスでは、次のようになります。

http://www.exampleyourdoamin/feed.php

于 2012-10-26T05:49:15.253 に答える
0

ロングポーリングと呼ばれる手法を使用する必要があります。ロング ポーリングは、接続を一定時間開いたままにします。この間、データベースに変更があるかどうかを確認します。はいの場合、接続を切断し、それらの変更をフロントエンドに送信します。そしてすぐに別の接続を開始します。詳細については、こちらをご覧ください。http://techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery

于 2012-10-26T05:44:03.497 に答える