2010-12-02 13 views
8

मैं अपने विट्स पर हूं कि क्वेरी पैरामीटर मान कैसा दिखना चाहिए। तो ग्राफ़ एपीआई लाइब्रेरी में एक बहुविकल्पीय को कम करने के लिए, जहां तक ​​मैं कह सकता हूं, इसे करने के लिए कोड विधि निम्न होगी।ग्राफ एपीआई के लिए फेसबुक नया PHP एसडीके - मल्टी क्वेरी

$param = array(
'method' => 'fql.multiquery', 
'queries' => $multiQuery, 
'callback' => ''); 
$queryresults = $facebook->api($param); 

का उपयोग करते हुए फेसबुक से नए पीएचपी एसडीके पुस्तकालय में इस विधि, इस काम किए गए किसी भी एक है? यदि ऐसा है तो आप $multiQuery चर के पूर्ण मूल्य को कैसे बनाते हैं, इस पर एक उदाहरण छोड़ सकते हैं?

मैं कुछ दिनों के लिए इसके साथ struggeling रहा है और मैं केवल पुराने PHP पुस्तकालय के साथ exmaples खोज रहा हूँ।

उत्तर

2

दिन के लिए अपने सिर को टक्कर देने के बाद हमेशा क्यों होता है, आप एक प्रश्न पूछते हैं, और 5 मिनट बाद, आप अपने उत्तर के साथ आते हैं।

तो मेरा प्यारा अनुभव यहां था।

PHP में से आप टेक्स्ट स्ट्रिंग शुरू करने के लिए "/' वर्ण का उपयोग कर सकते हैं, मुझे डबल कोट चरित्र और सिंगल कोट चरित्र के फ्लिप फ़्लॉपिंग में फंस गया है। यह मेरे सामने आया कि एक बहु प्रश्न में परिभाषित प्रश्न दोहरे उद्धरणों द्वारा लिपटे, डुह हैं।

तो सबक सीखा? यदि आपके पास एक ऐसा क्लॉज है जो बहु क्वेरी में स्ट्रिंग मान का उपयोग करता है, तो सुनिश्चित करें कि पेटी के लिए आप अपने फ़िल्टरिंग स्ट्रिंग वैल्यू के आस-पास सिंगल कोट्स का उपयोग करते हैं।

बीएडी बीएडी - यही वह है जो मैंने किया था। myvalue और myothervalue के चारों ओर डबल उद्धरण नोट करें। नटखट!

$multiQuery = { 
    "query1":"select something from something where somecolumn = "myvalue"", 
    "query2":"select something from something where somecolumn = "myothervalue"" 
    }; 

अच्छा उदाहरण - अब myvalue और myothervalue को देखो।

$multiQuery = { 
    "query1":"select something from something where somecolumn = 'myvalue'", 
    "query2":"select something from something where somecolumn = 'myothervalue'" 
    }; 

तो अब मैं कर सकते हैं ...

$multiQuery = { 
     "query1":"select something from something where somecolumn = 'myvalue'", 
     "query2":"select something from something where somecolumn = 'myothervalue'" 
     }; 

$param = array(  
    'method' => 'fql.multiquery',  
    'queries' => $multiQuery,  
    'callback' => '');  
$queryresults = $facebook->api($param); 

और आप में से किसी सोच रहे हैं, तो क्या $multiQuery चर के वास्तविक प्रकार है (मेरे जैसे नौसिखिया के लिए) है, यह सिर्फ एक स्ट्रिंग डेटा है प्रकार। यह एक सरणी नहीं है, पाठ से अधिक निफ्टी कुछ भी नहीं है।

+1

$ multiquery का मूल्य लगभग एकल उद्धरण दें। '$ multiquery = '{ " query1 ":" कुछ से कुछ चुनें जहां कुछcolumn = \' myvalue \ '", " query2 ":" कुछ से कुछ चुनें जहां कुछcolumn = \' myothervalue \ '" }'; ' – qasimzee

+0

गलत वाक्यविन्यास। से बदलो [, ] –

1

उनके संबंधित यूआरएल के साथ नोड आईडी के की एक सरणी को ध्यान में रखते रूप को महत्व देता है आप

/** 
*A JSON-encoded dictionary of the queries to perform. The array contains a set of key/value pairs. 
*Each key is a query name, which can contain only alphanumeric characters and optional underscores. 
*Each key maps to a value containing a traditional FQL query. 
*/ 
$fql = '{'; 
foreach ($path as $key1 => $value1) { 
    $fql .= '"' . $key1 . '":"SELECT share_count, like_count, comment_count, total_count FROM link_stat WHERE url=\'' . $value1 . '\'",'; 
} 

$fql .= '}'; 

$param = array(
    'method' => 'fql.multiquery', 
    'queries' => $fql, 
    'callback' => '' 
); 
try { 
    $fqlresult = $facebook->api($param); 
} catch (FacebookApiException $e) { 
    watchdog('Facebook Query', 'Parsing error on node @node | @error', array('@node' => $key1, '@error' => $e), WATCHDOG_DEBUG); } 
0

होगा आप इस कोशिश कर सकते हैं:

$multiQuery= array ("query1" => "query #1 goes here","query2" => "query #2 goes here"); 

$param = array(
'method' => 'fql.multiquery', 
'queries' => $multiQuery, 
'callback' => ''); 

$queryresults = $facebook->api($param); 
संबंधित मुद्दे