Hi Petrogad, I do get results, I get the title, I even get the addressline which is also an Array, but I don't manage to get the phoneNumbers.
Everything is in the same format, and I've tried all kind of combinations in each of the "foreach"'s.( the $r and the $sr). I even run tests to understand how the foreach function works http://allmybookings.com/foreach.php For the title: 1st. I assign $r -> title, and then for each $r->title result I print as $sr. I don't know why this change of variable, but the title works. I don't understand what is the relation with the PHP DOM? What am I doing wrong? Here is the last code with new tests: <?php require_once 'JSON.php'; if(isset($_GET['q'])) { $start = isset($_GET['start']) ? $_GET['start'] : 0; $url = 'http://ajax.googleapis.com/ajax/services/search/local?v=1.0&q='.urlencode($ _GET['q']).'&rsz=small&start='.$start; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $body = curl_exec($ch); curl_close($ch); $body = json_decode($body); $i = 0; $search_results = array(); foreach($body->responseData->results as $r) { $search_results['results'][$i]['title'] = $r->title; // $search_results['results'][$i]['phoneNumbers'] = $r->phoneNumbers; // $search_results['results'][$i]['type'] = $r->type; // $search_results['results'][$i]['number'] = $r->number; $search_results['phoneNumbers'][$i]['number'] = $r->number; $i++; } foreach($search_results['results'] as $sr) { echo $sr['title']."<br>"; echo $sr['number'][0]."<br>"; echo count($sr['phoneNumbers'][0])." <- 1 : gives 1 result. meaning there is 1 phone number<br>"; // best: echo count($sr['phoneNumbers']['number'])." <- 2<br>"; // gives 0 results, but doesn't give an error echo count($sr['phoneNumbers']['number'][0])." <- 3<br>"; // gives 0 results, but doesn't give an error echo $sr['phoneNumbers']." <- 4<br>"; // doesn't give an error but doesn't give a number. echo $sr['phoneNumbers']['number']." <- 5<br>"; // empty line echo $sr['phoneNumbers']['number'][0]." <- 6<br>"; // empty line echo $sr['phoneNumbers'][0]['number']." <- 7<br>"; // empty line echo $sr['phoneNumbers'][0]['number'][0]." <- 8<br>"; // empty line echo $sr['phoneNumbers']['number'][0]." <- 9<br>"; // empty line echo count($sr['phoneNumbers'][0]['number'])."<br>"; } } ?> On 03/04/09 15:05, "Petrogad" <[email protected]> wrote: > > Sebastian, the answer is in front of you :) > > I'm not sure where you're getting results in: foreach($body- >> responseData->results as $r) { > > if the below is what you get, then re-adjust your querying. > > Also take a look at this: > http://php.net/dom > > Good Luck, all the answers are above. > > On Apr 3, 4:45 am, sebastian de comocomo <[email protected]> > wrote: >> Hi Petrogad, >> >> Cool, I get this: >> >> [phoneNumbers] => Array >> ( >> [0] => stdClass Object >> ( >> [type] => >> [number] => 03 232 02 10 >> ) >> >> ) >> >> So, there is a phone number: 03 232 02 10. >> >> I suppose the structure should be something like this: >> ... >> $search_results['results'][$i]['phoneNumbers'] = $r->phoneNumbers; >> >> $search_results['results'][$i]['type'] = $r->type; >> >> $search_results['results'][$i]['number'] = $r->number; >> ... >> echo $sr['phoneNumbers'][0]['number']; >> ... >> But this stops the code, in that line. >> >> I also tried: >> ... >> $search_results['results'][$i]['phoneNumbers']['number'] = $r->newnumber; >> ... >> But this gives an empty record. >> >> And this: >> $search_results['results'][$i]['phoneNumbers'][$i]['number'] = >> $r->newnumber; >> >> Which gives an error -> empty page. >> >> What is "stdClass Object"? >> >> Thanks, >> Sebastian >> >> On 02/04/09 16:14, "Petrogad" <[email protected]> wrote: >> >> >> >>> Sebastian- >> >>> I would first print_r $body so you know what you're doing. then >>> proceed accordingly. >> >>> On Apr 2, 6:40 am, Sebastian <[email protected]> wrote: >>>> Hi, >> >>>> could anyone help me out with this? >> >>>> I've tried everything I can imagine. >> >>>> I suppose this is correct: >> >>>> echo count($sr['phoneNumbers'][0]); >> >>>> To see if there are any phone numbers in the variable, isn't it? >> >>>> If so, how do I get the number? >> >>>> Thanks >>>> Sebastian >> >>>> On Mar 30, 2:34 pm, Sebastian <[email protected]> wrote: >> >>>>> Hi, >> >>>>> I've tried many different options to get thephoneNumbersfrom the >>>>> Local Search API, but I didn't manage to do so. >> >>>>> I count how many numbers are in thephoneNumbersvariable and I get 1 >>>>> or 2 depending on the record, >> >>>>> count($sr['phoneNumbers'][0]) >> >>>>> I followed the reference guidelines, to try to do different options >>>>> but I don't manage to do so. The guide says there are 3 variables to >>>>> thephoneNumbers: >> >>>>> $search_results['results'][$i]['phoneNumbers'] = >>>>> $r->phoneNumbers; >>>>> $search_results['results'][$i]['type'] = $r->type; // 1) >>>>> main 2) fax >>>>> 3) mobile >>>>> $search_results['results'][$i]['number'] = $r->number; // >>>>> the number >>>>> itself >> >>>>> I'd like to do so, in PHP using CURL. >> >>>>> here are my tests: >> >>>>> http://allmybookings.com/apilocal/search-results.php?q=restaurants+br... >> >>>>> and here the code: >> >>>>> <?php >>>>> require_once 'JSON.php'; >>>>> if(isset($_GET['q'])) { >>>>> $start = isset($_GET['start']) ? $_GET['start'] : 0; >>>>> $url = 'http://ajax.googleapis.com/ajax/services/search/local? >>>>> v=1.0&q='.urlencode($_GET['q']).'&rsz=small&start='.$start; >>>>> $ch = curl_init(); >>>>> curl_setopt($ch, CURLOPT_URL, $url); >>>>> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); >>>>> $body = curl_exec($ch); >>>>> curl_close($ch); >>>>> $body = json_decode($body); >>>>> $i = 0; >>>>> $search_results = array(); >>>>> foreach($body->responseData->results as $r) { >>>>> $search_results['results'][$i]['title'] = $r->title; >>>>> $search_results['results'][$i]['phoneNumbers'] = >>>>> $r->phoneNumbers; >>>>> $search_results['results'][$i]['type'] = $r->type; >>>>> $search_results['results'][$i]['number'] = $r->number; >>>>> $i++; >>>>> } >>>>> foreach($search_results['results'] as $sr) { >>>>> echo $sr['title']."<br>"; >>>>> echo count($sr['phoneNumbers'][0])." <- 1 : gives 1 >>>>> result. >>>>> meaning >>>>> there is 1 phone number<br>"; // best: >>>>> echo count($sr['phoneNumbers']['number'])." <- 2<br>"; // >>>>> gives 0 >>>>> results, but doesn't give an error >>>>> echo count($sr['phoneNumbers']['number'][0])." <- 3<br>"; >>>>> // >>>>> gives 0 >>>>> results, but doesn't give an error >>>>> echo $sr['phoneNumbers']." <- 4<br>"; // doesn't give an >>>>> error but >>>>> doesn't give a number. >>>>> echo $sr['phoneNumbers']['number']." <- 5<br>"; // empty >>>>> line >>>>> echo $sr['phoneNumbers']['number'][0]." <- 6<br>"; // >>>>> empty >>>>> line >>>>> // this gives error echo count($sr['phoneNumbers'][0] >>>>> ['number'])."<br>"; >>>>> // this gives error echo $sr['phoneNumbers'][0]."<br>"; >>>>> // this gives error echo >>>>> $sr['phoneNumbers'][0]['number']."<br>";} >>>>> } >> >>>>> ?> >> >>>>> Has anyone manage to get this info? >> >>>>> Thanks, >>>>> Sebastian > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google AJAX APIs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/Google-AJAX-Search-API?hl=en -~----------~----~----~----~------~----~------~--~---
