/**
  * Extract album information from a SimpleXMLElement object.
  * 
  * @param SimpleXMLElement $album
  * @param string $id
  * @return Album
  */
 private function extractAlbumInfo(SimpleXMLElement $album, $id = null)
 {
     $artistUse = $album->artist;
     if (is_array($album->artist) || isset($album->artist[0])) {
         $artistUse = $album->artist[0];
     }
     $artist = $this->extractArtistInfo($artistUse);
     $albumId = $album->attributes();
     $albumURI = (string) $albumId['href'];
     if ($id != null && isset($id)) {
         $albumURI = $id;
     }
     $currentAlbum = new Album($albumURI, (string) $album->name, (string) $album->released, $artist, (double) $album->popularity);
     $territories = explode(' ', (string) $album->availability->territories);
     $currentAlbum->setTerritories($territories);
     $tracks = array();
     if (isset($album->tracks->track)) {
         foreach ($album->tracks->track as $track) {
             $tracks[] = $this->extractTrackInfo($track, clone $currentAlbum);
         }
     }
     $currentAlbum->setTracks($tracks);
     return $currentAlbum;
 }
 function getAlbumByTitle($q)
 {
     $albums = array();
     $sql = "SELECT * FROM  Album WHERE Title like :q OR Artist like :q ";
     $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     $result = $this->db->prepare($sql);
     $result->execute(array(":q" => '%' . $q . '%'));
     $data = $result->fetchAll(PDO::FETCH_OBJ);
     foreach ($data as $unAlbum) {
         $album = new Album();
         $album->init($unAlbum->IDAlbum, $unAlbum->Title, $unAlbum->Cover, $unAlbum->Artist);
         $album->setTracks($this->getAlbumTracks($unAlbum->IDAlbum));
         array_push($albums, $album);
     }
     return $albums;
 }