Estoy tratando de usar YQL en php para obtener información del producto de Amazon usando la tabla amazon.prodlist y la API de Amazon Product Advertising.¿Cómo obtener más de 10 resultados para una consulta con YQL?
La consulta que he utilizado:
select * from amazon.prodlist where Title='harry potter' and SearchIndex='Books' and ResponseGroup='Images,ItemAttributes'
sólo devuelve 10 resultados. ¿Cómo puedo obtener que muestre más de 10 resultados en la misma página? Además, sin paginación.
El código PHP completo:
<?php
$BASE_URL = "https://query.yahooapis.com/v1/public/yql";
$key="my_key";
$secret="my_secret";
$title="harry potter";
$sindex="Books";
$rgroup="Images,ItemAttributes";
$events="";
// Form YQL query and build URI to YQL Web service
$yql_query = "use 'http://www.datatables.org/amazon/amazon.ecs.xml' as amazon.prodlist;
set AWSAccessKeyId='$key' on amazon.prodlist;
set secret='$secret' on amazon.prodlist;
select * from amazon.prodlist where Title='$title' and SearchIndex='$sindex' and ResponseGroup='$rgroup' ";
$yql_query_url = $BASE_URL . "?q=" . urlencode($yql_query) . "&format=json";
// Make call with cURL
$session = curl_init($yql_query_url);
curl_setopt($session, CURLOPT_RETURNTRANSFER,true);
$json = curl_exec($session);
// Convert JSON to PHP object
$phpObj = json_decode($json);
// Confirm that results were returned before parsing
if(!is_null($phpObj->query->results)){
// Parse results and extract data to display
foreach($phpObj->query->results->Item as $event){
$events .= "<div><h2>" . $event->ItemAttributes->Title . " by " . $event->ItemAttributes->Author . "</h2></div>";
}
}
// No results were returned
if(empty($events)){
$events = "Sorry, no events matching result";
}
// Display results and unset the global array $_GET
echo $events;
unset($_GET);
?>
Esta muestra 10 resultados en una página. Mientras que cuando busco 'harry potter' en 'Libros' en el sitio web de Amazon, obtengo más de 3k resultados. ¿Hay alguna manera de obtener todos los resultados en una sola página? Por favor avise.
Lea [la documentación] (http://developer.yahoo.com/yql/guide/paging.html) quizás? – Wrikken
Ya lo leí e intenté cambiar la consulta a: 'select * from amazon.prodlist (20) donde Title = '$ title' y SearchIndex = '$ sindex' y ResponseGroup = '$ rgroup'', ' select * de amazon.prodlist (0) donde Title = '$ title' y SearchIndex = '$ sindex' y ResponseGroup = '$ rgroup'', 'select * from amazon.prodlist (0) donde Title =' $ title ' y SearchIndex = '$ sindex' y ResponseGroup = '$ rgroup' limit 20' Pero sigo recibiendo solo 10 resultados. ¿Cualquier otra sugerencia? –
OK, no tengo mucha experiencia con Amazon o YQL, así que lo dejo a los demás, la próxima vez que menciones ese pequeño hecho, ahorra tiempo a la gente :) – Wrikken