[Phpwm] nuSoap question
Ray Masa
raymasa at hotmail.com
Thu Oct 5 10:18:44 BST 2006
Hi jon,
Thanks for the pointers. Will let you know if I figure it out...:).
Ray
>From: "Jon Spriggs" <jon at spriggs.org.uk>
>Reply-To: West Midlands PHP User Group <phpwm at mailman.lug.org.uk>
>To: "West Midlands PHP User Group" <phpwm at mailman.lug.org.uk>
>Subject: Re: [Phpwm] nuSoap question
>Date: Thu, 5 Oct 2006 09:42:49 +0100
>
>To be honest Ray, I've never had it returning array values properly -
>I've even got to the point where I build a string array first (using
>symbols outside the expected range) and then split it at the far end.
>
>It is possible to return an array, but I think you need to create a
>new "array" type, which specifies the number of entries in the array
>(so for $Key=>$Value, that'd be 2 I think, unless
>$Var['fred']="twist"; $var['george']="stick"; is 2... I'm not sure.)
>But even then, I'm not sure. If you figure it out, can you let me know
>how you did it :)
>
>Regards,
>
>Jon
>
>On 05/10/06, Ray Masa <raymasa at hotmail.com> wrote:
>>Hi all,
>>
>>Not sure if this is a relevant question for this forum, since I think the
>>issue is more to do with nuSoap rather than PHP or mySQL, but I figured I
>>ask any way. I am getting by feet wet on web services and found nuSoap,
>>which seems like a very cool tool. I followed an example at
>>codewalkers.com
>>(http://codewalkers.com/tutorials/74/1.html) which worked very well. I
>>then
>>proceed to modify that example a bit further to retrieve data from the
>>database dynamically (you enter information in the form on the soap client
>>and get the result back based on the parameter you entered). I was able to
>>retrieve a single record from the database, but not multiple records. When
>>I
>>tried the php code (without soap) to retrieve data from the database, I
>>was
>>able to retrieve multiple records, so it seems like the SQL statement is
>>correct. If so, why is it not working with nuSoap? Any suggestions on what
>>I
>>am doing wrong?
>>
>>The soap server is as follows:
>>
>>Code:
>>
>><?php
>>function getStockQuote($id) {
>>
>> mysql_connect('host','username','password');
>> mysql_select_db('db');
>> $query = "SELECT * FROM table "
>> . "WHERE id = '$id' ";
>> $result = mysql_query($query);
>>
>> while ($row = mysql_fetch_assoc($result)){
>> return $row['stock'];
>> }
>>}
>>
>>require('lib/nusoap.php');
>>
>>$server = new soap_server();
>>
>>$server->configureWSDL('server', 'urn:stockquote');
>>
>>$server->register("getStockQuote",
>> array('symbol' => 'xsd:string'),
>> array('return' => 'xsd:string'),
>> 'urn:stockquote',
>> 'urn:stockquote#getStockQuote');
>>
>>$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA)
>> ? $HTTP_RAW_POST_DATA : '';
>>$server->service($HTTP_RAW_POST_DATA);
>>?>
>>
>>
>>What I am trying to do is retrieve all stocks associated with the id that
>>is
>>entered in the form on the soap client. But it is only returning the first
>>record in the table.
>>
>>If I try just the following SQL statement in a php file, it return all
>>records:
>>
>>Code:
>>
>> mysql_connect('host','username','password');
>> mysql_select_db('db');
>> $query = "SELECT * FROM table "
>> . "WHERE id = '$id' ";
>> $result = mysql_query($query);
>>
>> while ($row = mysql_fetch_assoc($result)){
>> echo $row['stock'];
>> }
>>
>>
>>
>>The soap client for the above server is:
>>
>>Code:
>>
>><html>
>><body>
>>
>><form method="get" action="client.php">
>> ID: <input name="symbol" type="text" value="">
>> <br>
>> <br>
>> <input type="submit">
>></form>
>>
>><?php
>>
>>$symbol = $_GET['symbol'];
>>
>>if ($symbol) {
>>
>>require_once('lib/nusoap.php');
>>
>>//we create an array with the element name that has the form value of name
>>
>>//now we must create a soapclient object
>>$c = new soapclient('http://domain.com/server.php');
>>//now we call the server.
>>
>>$stockprice = $c->call('getStockQuote',
>> array('symbol' => $symbol));
>>
>>echo "Information for $symbol is $stockprice.";
>>
>>
>>}
>>
>>?>
>>
>>
>></body>
>></html>
>>
>>
>>
>>So, it seems that I am doing something incorrectly in the soap server.
>>
>>Thanks for your help.
>>
>>Ray
>>
>>
>>
>>_______________________________________________
>>Phpwm mailing list
>>Phpwm at mailman.lug.org.uk
>>https://mailman.lug.org.uk/mailman/listinfo/phpwm
>>
>
>_______________________________________________
>Phpwm mailing list
>Phpwm at mailman.lug.org.uk
>https://mailman.lug.org.uk/mailman/listinfo/phpwm
More information about the Phpwm
mailing list