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 ? Quote 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'), ); Quote 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 ?? Quote 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. Quote 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. Quote 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
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.