Cześć muszę zrobić niewielki projekt na podstawie nuSoap lub po prostu SOAP mam zamiar napisać funkcję na serwerze ,która pozwoli na wyciągnięcie calej tabeli z bazy ,ale mi nie wychodzi sad.gif zerknijcie proszę dlaczego:
serwer:
  1. <?php
  2. class Ksiazka {
  3. var $id,$tytul,$cena;
  4. public function Ksiazka($id,$tytul,$cena) {
  5. $this->id = $id;
  6. $this->tytul = $tytul;
  7. $this->cena = $cena;
  8. }
  9. }
  10.  
  11. function pobierzCene(){
  12. $ksiazki = array();
  13.  
  14. $dbConnection = new mysqli('localhost','root','','ksiegarnia');
  15. $query = "SELECT * from KSIAZKI";
  16. $result = $dbConnection->query($query);
  17. $ile = $result->num_rows;
  18.  
  19. for($i=0;$i<$ile;$i++) {
  20. $row = $result->fetch_assoc();
  21. $ksiazki[] = new Ksiazka($row['id'],$row['tytul'],$row['cena']);
  22. }
  23.  
  24. return $ksiazki;
  25. }
  26.  
  27.  
  28. require_once ('nusoap.php');
  29.  
  30. $server = new soap_server();
  31. $server->configureWSDL('server','ksiegarnia');
  32. $server->wsdl->addComplexType('ksiazki',
  33. 'complexType',
  34. 'struct',
  35. 'all',
  36. '',
  37. array('id' =>array('name'=>'id', 'type'=>'xsd:integer'),
  38. 'tytul'=>array('name'=>'tytul', 'type'=>'xsd:string'),
  39. 'cena' =>array('name'=>'cena', 'type'=>'xsd:integer')
  40. )
  41. );
  42.  
  43. $server->register("pobierzCene",
  44. array('tytul'=> 'xsd:string'),
  45. array('return' => 'tns:ksiazki'),
  46. 'ksiegarnia',
  47. 'ksiegarnia#pobierzCene'
  48. );
  49. $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
  50.  
  51. $server->service($HTTP_RAW_POST_DATA);

klient:
  1. require_once ('nusoap.php');
  2.  
  3. $client = new soapclient('http://localhost/Soap/server.php?wsdl');
  4.  
  5. $cena = $client->__call('pobierzCene',
  6. );
  7.  
  8. print_r($cena);

A wynik działania:
  1. stdClass Object ( [id] => [tytul] => [cena] => )


Przy czym tabela pusta nie jest są w niej 3 rekordy sad.gif