我已經定義了一個Web服務,從我的MySQL數據庫返回數據的數組。WSDL返回複雜類型
我已經用php編寫了web服務。
現在我已經定義的複雜類型,如下所示:
$server->wsdl->addComplexType(
'Category',
'complexType',
'struct',
'all',
'',
array(
'category_parent_id' => array('name' => 'category_parent_id', 'type' => 'xsd:int'),
'category_child_id' => array('name' => 'category_child_id', 'type' => 'xsd:int'),
'category_list' => array('name' => 'category_list', 'type' => 'xsd:int')
)
);
上述複雜類型是我數據庫中表中的一行。現在
我的功能必須把這些行的一組讓我怎麼實現同樣
我的代碼如下:
require_once('./nusoap/nusoap.php');
$server = new soap_server;
$server->configureWSDL('productwsdl', 'urn:productwsdl');
// Register the data structures used by the service
$server->wsdl->addComplexType(
'Category',
'complexType',
'struct',
'all',
'',
array(
'category_parent_id' => array('name' => 'category_parent_id', 'type' => 'xsd:int'),
'category_child_id' => array('name' => 'category_child_id', 'type' => 'xsd:int'),
'category_list' => array('name' => 'category_list', 'type' => 'xsd:int')
)
);
$server->register('getaproduct', // method name
array(), // input parameters
//array('return' => array('result' => 'tns:Category')), // output parameters
array('return' => 'tns:Category'), // output parameters
'urn:productwsdl', // namespace
'urn:productwsdl#getaproduct', // soapaction
'rpc', // style
'encoded', // use
'Get the product categories' // documentation
);
function getaproduct()
{
$conn = mysql_connect('localhost','root','');
mysql_select_db('sssl', $conn);
$sql = "SELECT * FROM jos_vm_category_xref";
$q = mysql_query($sql);
while($r = mysql_fetch_array($q))
{
$items[] = array('category_parent_id'=>$r['category_parent_id'],
'category_child_id'=>$r['category_child_id'],
'category_list'=>$r['category_list']);
}
return $items;
}
// Use the request to (try to) invoke the service
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
是的,我知道這個格式是不正確的,但我的傢伙在粘貼由編輯器提供的代碼塊中的代碼,但它似乎並沒有工作。 如果有些能告訴我爲什麼還是有人可以對其進行編輯對我來說這將是巨大的 – 2010-01-12 03:36:47