Mercurial > hg > ywww
diff xml/getAmazonInfo.php @ 19:84a412b8122c
try to protect against a range of missing info
author | Charlie Root |
---|---|
date | Thu, 30 Aug 2018 17:18:12 -0400 |
parents | c41a5802b26c |
children | 46382face560 |
line wrap: on
line diff
--- a/xml/getAmazonInfo.php Sun Jul 30 05:34:46 2017 -0400 +++ b/xml/getAmazonInfo.php Thu Aug 30 17:18:12 2018 -0400 @@ -108,6 +108,9 @@ /*$xml = new SimpleXMLElement("<?xml version=\"1.0\"?><ItemLookupErrorResponse xmlns=\"http://ecs.amazonaws.com/doc/2009-03-31/\"><Error><Code>AccountLimitExceeded</Code><Message>Account limit of 2056 requests per hour exceeded.</Message></Error><RequestID>290ed059-730c-4789-93b4-6d21e11053d3</RequestID></ItemLookupErrorResponse>");*/ $review = ""; + $review1 = ""; + $review2 = ""; + $review3 = ""; // HST added this if (preg_match("<Error>",$output)) { $xml = new SimpleXMLElement($output); @@ -145,9 +148,6 @@ // cause restore_error_handler(); //echo $review; - $review1 = ""; - $review2 = ""; - $review3 = ""; } if ($review != "") { @@ -260,95 +260,107 @@ if($errorCode != "AccountLimitExceeded") { if($go == 1) { + $item = $xml->Items->Item[0]; + if ($item && $item->ItemAttributes && $item->ItemAttributes->Title) { + $title = $item->ItemAttributes->Title; } + else { $title = "[no title]"; }; file_put_contents('/var/ywww/debug/phpDebug',"win: ". - $xml->Items->Item->ItemAttributes->Title."\n", + $title."\n", FILE_APPEND); return $output; } - else - { - $title = $xml->Items->Item->ItemAttributes->Title; - $author = $xml->Items->Item->ItemAttributes->Author; - $binding = $xml->Items->Item->ItemAttributes->Binding; - $dewey = $xml->Items->Item->ItemAttributes->DeweyDecimalNumber; - if($dewey == "") - $dewey = "null"; - $imageURL = $xml->Items->Item->MediumImage->URL; - $salesRank = $xml->Items->Item->SalesRank; - $pubDate = $xml->Items->Item->ItemAttributes->PublicationDate; - $publisher = $xml->Items->Item->ItemAttributes->Publisher; - - $genreID = ""; - $genre = ""; - $genArr = array(); + else + { + if ($xml->Items->Item) { + $title = $xml->Items->Item[0]->ItemAttributes->Title; + $author = $xml->Items->Item[0]->ItemAttributes->Author; + $binding = $xml->Items->Item[0]->ItemAttributes->Binding; + $dewey = $xml->Items->Item[0]->ItemAttributes->DeweyDecimalNumber; + if($dewey == "") + $dewey = "null"; + $imageURL = $xml->Items->Item[0]->MediumImage->URL; + $salesRank = $xml->Items->Item[0]->SalesRank; + $pubDate = $xml->Items->Item[0]->ItemAttributes->PublicationDate; + $publisher = $xml->Items->Item[0]->ItemAttributes->Publisher; + } + else { + $title = $salesRank = ""; + $dewey = "null"; + } - for($i=0;$i<sizeof($xml->Items->Item->BrowseNodes->BrowseNode);$i++){ - //sexy recursive function - findGenre($xml->Items->Item->BrowseNodes->BrowseNode[$i], $genreID, $genre); + $genreID = ""; + $genre = ""; + $genArr = array(); + + if ($xml->Items->Item[0] && $xml->Items->Item[0]->BrowseNodes) { + for($i=0;$i<sizeof($xml->Items->Item->BrowseNodes->BrowseNode);$i++){ + //sexy recursive function + findGenre($xml->Items->Item->BrowseNodes->BrowseNode[$i], $genreID, $genre); - if($genre != "") - $genArr[strval($genreID)] = strval($genre); - //$genArr[$i] = array(strval($genreID) => strval($genre)); + if($genre != "") + $genArr[strval($genreID)] = strval($genre); + //$genArr[$i] = array(strval($genreID) => strval($genre)); - //echo $genre; - //echo $genreID; + //echo $genre; + //echo $genreID; - $genre = ""; - $genreID = ""; - } + $genre = ""; + $genreID = ""; + } + } - $g1 = "null"; - $g2 = "null"; - $g3 = "null"; - $loop = 1; + $g1 = "null"; + $g2 = "null"; + $g3 = "null"; + $loop = 1; - foreach ($genArr as $key => $value) { - //echo "$key => $value"; - $queryG = "CALL b_addBrowseNode($key,\"$value\")"; //add the name value pair for genre to new table - //echo $queryG; - include "../../private/db.php"; - $resG = mysqli_query($link, $queryG); - mysqli_close($link); + foreach ($genArr as $key => $value) { + //echo "$key => $value"; + $queryG = "CALL b_addBrowseNode($key,\"$value\")"; //add the name value pair for genre to new table + //echo $queryG; + include "../../private/db.php"; + $resG = mysqli_query($link, $queryG); + mysqli_close($link); - switch ($loop) { - case 1: - $g1 = $key; - break; - case 2: - $g2 = $key; - break; - case 3: - $g3 = $key; - break; - } + switch ($loop) { + case 1: + $g1 = $key; + break; + case 2: + $g2 = $key; + break; + case 3: + $g3 = $key; + break; + } - $loop++; - } + $loop++; + } - if($salesRank == "") - $salesRank = "null"; + if($salesRank == "") + $salesRank = "null"; - $title = strtr($title, '"', "'"); - include "../../private/db.php"; - $review1 = mysqli_real_escape_string($link,$review1); - $review2 = mysqli_real_escape_string($link,$review2); - $review3 = mysqli_real_escape_string($link,$review3); + $title = strtr($title, '"', "'"); + include "../../private/db.php"; + $review1 = mysqli_real_escape_string($link,$review1); + $review2 = mysqli_real_escape_string($link,$review2); + $review3 = mysqli_real_escape_string($link,$review3); - if($title != "") - { - $queryInsert = "CALL b_addNewBook(\"$searchparameterdata\",\"$title\", \"$author\",\"$binding\",\"$imageURL\", $dewey, $salesRank,\"$pubDate\",\"$publisher\",$g1,$g2,$g3,$loc)"; - //echo $queryInsert; - $queryInsertReviews = "CALL b_insertReviews(\"$searchparameterdata\",\"$review1\",\"$review2\",\"$review3\")"; + if($title != "") + { + $queryInsert = "CALL b_addNewBook(\"$searchparameterdata\",\"$title\", \"$author\",\"$binding\",\"$imageURL\", $dewey, $salesRank,\"$pubDate\",\"$publisher\",$g1,$g2,$g3,$loc)"; + //echo $queryInsert; + $queryInsertReviews = "CALL b_insertReviews(\"$searchparameterdata\",\"$review1\",\"$review2\",\"$review3\")"; - $resG = mysqli_query($link, $queryInsert) or exit( mysqli_error( $link )); - if($review1 != "" && $review2 != "" && $review3 != "") - $resG = mysqli_query($link, $queryInsertReviews) or exit( mysqli_error( $link )); + $resG = mysqli_query($link, $queryInsert) or exit( mysqli_error( $link )); + if($review1 != "" && $review2 != "" && $review3 != "") + $resG = mysqli_query($link, $queryInsertReviews) or exit( mysqli_error( $link )); - mysqli_close($link); //do not remove. reset is needed otherwise mysqli_fetch_array doesn't work after first loop - } + mysqli_close($link); //do not remove. reset is needed otherwise mysqli_fetch_array doesn't work after first loop + } - echo $output; - } + echo $output; + } } else {