ขอคำแนะนำเกี่ยวกับ web service ครับ การสร้าง web service เพื่อดึงข้อมูลจากฐานข้อมูล
คือยังไม่ค่อยจะเข้าใจนะครับ
กรุณาช่วยอธิบายรายละเอียดหน่อยนะครับ
รันแล้วมันขึ้นอย่างนี้ครับ
Array ( [ServicePINResult] => Array ( [schema] => Array ( [element] => Array ( [complexType] => Array ( [choice] => Array ( [element] => Array ( [complexType] => Array ( [sequence] => Array ( [element] => Array ( [0] => Array ( [!name] => Code [!minOccurs] => 0 ) [1] => Array ( [!name] => Description [!minOccurs] => 0 ) ) ) ) [!name] => Message ) [!maxOccurs] => unbounded ) ) [!name] => NewDataSet [!msdata:IsDataSet] => true ) [!id] => NewDataSet ) [diffgram] => Array ( [NewDataSet] => Array ( [Message] => Array ( [Code] => E00008 [Description] => เน€เธฅเธ PIN เนเธกเนเธ–เธนเธเธ•เนเธญเธ เน€เธเธทเนเธญเธเธเธฒเธ เธซเธกเธฒเธขเน€เธฅเธPINเน€เธเนเธเธ•เธฑเธงเธญเธฑเธเธฉเธฃเธซเธฃเธทเธญเน€เธฅเธPINเน€เธเนเธเธ•เธฑเธงเธญเธฑเธเธฉเธฃเธซเธฃเธทเธญเธเธณเธเธงเธเธซเธฅเธฑเธเน€เธ—เนเธฒเธเธฑเธ13เธซเธฅเธฑเธเธซเธฃเธทเธญเธฃเธนเธเนเธเธ PINเนเธกเนเธ–เธนเธเธ•เนเธญเธ
PIN incorrect
=> "31021xxxxxxxx" [!diffgr:id] => Message1 [!msdata:rowOrder] => 0 [!diffgr:hasChanges] => inserted ) ) ) ) )
Date :
2010-12-26 12:16:12
By :
nanahara13
ที่ขึ้นอย่างนี้คิดว่าข้อมูล encoding อาจจะไม่ตรงครับ
ลองเอา
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
หรือ
<meta content='text/html; charset=TIS-620' http-equiv='Content-Type'/>
แทรกเข้าไปด้านบนของโค้ดครับ
เพื่อดูว่าการ encode อันไหนถูกต้องเข้ากับข้อมูลที่ได้รับมา
ส่วนวิธีการนำมาใช้ก็ แล้วแต่ต้องการเอาข้อมูลอะไรมาใช้ครับ เช่น
print_r($result['ServicePINResult']['schema']);
Date :
2010-12-26 15:58:42
By :
num
นำมาเพิ่มแล้วเกิดเออเรอครับ
Parse error: syntax error, unexpected.........
ต้องทำอย่างไรครับ ตอนนี้ยังงงๆอยู่ครับ..
Date :
2010-12-28 14:40:15
By :
nanahara13
ผมลองเขียนดูแล้วนะคับ ส่วนของเซิฟเวอร์ server_book
Code (PHP)
<?
//call library
require_once ('lib/nusoap.php');
//using soap_server to create server object
$server = new soap_server;
$server->configureWSDL('server_bookwsdl', 'urn:server_bookwsdl');
//register a function that works on server
$server->register('getallbook');
// create the function
function getallbook()
{
$conn = mysql_connect('localhost','root','1234');
mysql_select_db('testdb', $conn);
$sql = "SELECT * FROM book";
$q = mysql_query($sql);
while($r = mysql_fetch_array($q)){
$items[] = array('cd'=>$r['cd'],
'title'=>$r['title'],
'author'=>$r['author'],
'publisher'=>$r['publisher']);
}
return $items;
}
// create HTTP listener
$server->service($HTTP_RAW_POST_DATA);
exit();
?>
และ client_book
Code (PHP)
<?
require_once ('lib/nusoap.php');
$client = new nusoap_client('http://localhost/test/nusoap/server_book.php?wsdl',true);
$response = $client->call('getallbook');
if($client->fault)
{
echo "FAULT: <p>Code: (".$client->faultcode.")</p>";
echo "String: ".$client->faultstring;
}
else
{
$r = $response;
$count = count($r);
?>
<table border="1">
<tr>
<th>Code</th>
<th>Title</th>
<th>Author</th>
<th>Publisher</th>
</tr>
<?
for($i=0;$i<=$count-1;$i++){
?>
<tr>
<td><?=$r[$i]['cd']?></td>
<td><?=$r[$i]['title']?></td>
<td><?=$r[$i]['author']?></td>
<td><?=$r[$i]['publisher']?></td>
</tr>
<?
}
?>
</table>
<?
}
?>
รัน server_book ได้คับ แต่พอรัน client_book ได้แบบนี้ครับ
Fatal error: Cannot use string offset as an array in C:\AppServ\www\test\nusoap\client_book.php on line 25
ช่วยแนะนำด้วยครับ ส่วนสุดท้ายแล้ว ขอความกรุณาด้วยครับ ขอบคุณครับ
Date :
2011-02-03 23:44:41
By :
nanahara13
ไม่มีใครโพสเลย ช่วยด้วยครับ..
Date :
2011-02-04 20:42:09
By :
nanahara13
Load balance : Server 04