munnikd Posted December 7, 2010 Share Posted December 7, 2010 I call the following webservice: $soap = new SoapClient('http://172.18.22.182/csp/ampath/ReportGeneration.Mobi.Services.cls?WSDL'); $params = array('prmRegUser'=>"34"); $result = $soap->getResultsByUser($params); I get the following returned when I do a var_dump ($result) form a webs service call and needs to be able to display the data correctly in a table: object(stdClass)#2 (1) { ["getResultsByUserResult"]=> object(stdClass)#3 (1) { ["Specimen"]=> array(10) { [0]=> object(stdClass)#4 (3) { ["SpecimenID"]=> string(3) "380" ["SpecimenModule"]=> string(3) "LAB" ["CollectedTime"]=> string(5) "13:12" } [1]=> object(stdClass)#5 (7) { ["SpecimenID"]=> string(5) "18470" ["PatientSurname"]=> string(6) "de Wet" ["PatientFirstName"]=> string(6) "Liza K" ["PatientSex"]=> string(1) "F" ["PatientAge"]=> string(2) "33" ["SpecimenModule"]=> string(3) "LAB" ["CollectedTime"]=> string(5) "14:00" } [2]=> object(stdClass)#6 (7) { ["SpecimenID"]=> string(5) "17890" ["PatientSurname"]=> string(6) "Harmse" ["PatientFirstName"]=> string(5) "Mark " ["PatientSex"]=> string(1) "M" ["PatientAge"]=> string(2) "31" ["SpecimenModule"]=> string(3) "LAB" ["CollectedTime"]=> string(5) "12:53" } [3]=> object(stdClass)#7 (7) { ["SpecimenID"]=> string(5) "17408" ["PatientSurname"]=> string(6) "Harmse" ["PatientFirstName"]=> string(5) "Mark " ["PatientSex"]=> string(1) "M" ["PatientAge"]=> string(2) "31" ["SpecimenModule"]=> string(3) "LAB" ["CollectedTime"]=> string(5) "12:00" } [4]=> object(stdClass)#8 (7) { ["SpecimenID"]=> string(5) "17371" ["PatientSurname"]=> string(6) "Harmse" ["PatientFirstName"]=> string(5) "Mark " ["PatientSex"]=> string(1) "M" ["PatientAge"]=> string(2) "31" ["SpecimenModule"]=> string(3) "LAB" ["CollectedTime"]=> string(5) "09:46" } [5]=> object(stdClass)#9 (7) { ["SpecimenID"]=> string(5) "18480" ["PatientSurname"]=> string(6) "Harvey" ["PatientFirstName"]=> string(4) "Lee " ["PatientSex"]=> string(1) "F" ["PatientAge"]=> string(2) "31" ["SpecimenModule"]=> string(3) "LAB" ["CollectedTime"]=> string(5) "15:00" } [6]=> object(stdClass)#10 (7) { ["SpecimenID"]=> string(5) "17115" ["PatientSurname"]=> string(6) "Marais" ["PatientFirstName"]=> string(7) "Les PTP" ["PatientSex"]=> string(1) "M" ["PatientAge"]=> string(2) "35" ["SpecimenModule"]=> string(3) "LAB" ["CollectedTime"]=> string(5) "16:30" } [7]=> object(stdClass)#11 (7) { ["SpecimenID"]=> string(5) "17113" ["PatientSurname"]=> string(6) "Marais" ["PatientFirstName"]=> string(7) "Les PTP" ["PatientSex"]=> string(1) "M" ["PatientAge"]=> string(2) "35" ["SpecimenModule"]=> string(3) "LAB" ["CollectedTime"]=> string(5) "16:26" } [8]=> object(stdClass)#12 (7) { ["SpecimenID"]=> string(5) "17311" ["PatientSurname"]=> string(4) "Muis" ["PatientFirstName"]=> string(7) "Mickey " ["PatientSex"]=> string(1) "M" ["PatientAge"]=> string(2) "54" ["SpecimenModule"]=> string(3) "LAB" ["CollectedTime"]=> string(5) "10:36" } [9]=> object(stdClass)#13 (7) { ["SpecimenID"]=> string(4) "4919" ["PatientSurname"]=> string(5) "Tudor" ["PatientFirstName"]=> string(6) "Henry " ["PatientSex"]=> string(1) "M" ["PatientAge"]=> string(2) "57" ["SpecimenModule"]=> string(3) "LAB" ["CollectedTime"]=> string(5) "12:00" } } } } This is data from a database and length varies accordingly. What would be the best way to display this in a table under the following headings: Specimen ID | Surname | Name | Sex | Age | Module | Time 380 | | | F | | LAB | 13:12 18470 | de Wet | Liza K | F | 33 | LAB | 14:00 Any ideas ? Link to comment https://forums.phpfreaks.com/topic/220923-webservices-how-to-display-response/ Share on other sites More sharing options...
salathe Posted December 7, 2010 Share Posted December 7, 2010 This question is mostly about how to loop over an array and produce a HTML table so rather than give you an answer specific to your object, let's try and make you think a little. Suppose we had the following array, how would you a) loop over it, and b) output a table? $array = array( array('a' => 'apple', 'b' => 'banana', 'c' => 'cherry'), array('a' => 'aardvark', 'b' => 'badger', 'c' => 'cat'), ); Link to comment https://forums.phpfreaks.com/topic/220923-webservices-how-to-display-response/#findComment-1143981 Share on other sites More sharing options...
munnikd Posted December 8, 2010 Author Share Posted December 8, 2010 Hi, When looping through a foreach loop I get the following error: foreach($result as $key=>$value) { echo $key.' -> '.$value.'<br />'; } PHP Catchable fatal error: Object of class stdClass could not be converted to string in ?? Link to comment https://forums.phpfreaks.com/topic/220923-webservices-how-to-display-response/#findComment-1144306 Share on other sites More sharing options...
trq Posted December 8, 2010 Share Posted December 8, 2010 That error is because you cannot echo an object. So, you need to check if $key is an object (or an array), if it is you will need to recursively call your loop again, if not, it is safe to display. Link to comment https://forums.phpfreaks.com/topic/220923-webservices-how-to-display-response/#findComment-1144315 Share on other sites More sharing options...
munnikd Posted December 8, 2010 Author Share Posted December 8, 2010 I'm really lost here, would appreciate if you could help me with some code. Link to comment https://forums.phpfreaks.com/topic/220923-webservices-how-to-display-response/#findComment-1144322 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.