View Single Post
Old 07-06-2009, 12:03 AM   #10 (permalink)
talonos
The Wanderer
 
Join Date: Jul 2009
Posts: 10
Thanks: 1
talonos is on a distinguished road
Default

i've already got one page that parses that same xml file but a diffrent part and the layout is the exact same with the criteria but that page doesn't have the error at all, but this one is and its really starting to annoying me now as quite a few people cant work it out either even thou theres very little diffrence within the 2 pages, i'll post my working script so u guys can compare and see if u can work it out too


PHP Code:
#!/usr/bin/php 
<?php 


 

// Include phpbb's config for db info 
//include("config.php"); 

echo 'Working...' '</br>'

/* 
roster_gen class posted by D1g1talS0ul on elitistjerks.com 
*/ 

class roster_gen 

 const 
BROWSER="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.2) Gecko/20070319 Firefox/2.0.0.3"

 public 
$query
 public 
$server
 public 
$guild
 public 
$guildie
 public 
$page

public function 
__construct $query$server$guild$guildie$page ) { 
    
$this->query $query
    
$this->server $server
    
$this->guild $guild
    
$this->guildie $guildie
    
$this->page $page
 } 
// end of __construct() 

public function pull_xml() { 

    if( 
$this->query === 'roster' ) { 
        
$url 'http://eu.wowarmory.com/guild-info.xml?r=' $this->server '&n=' $this->guild'&p=' $this->page
         
    } elseif( 
$this->query === 'character' ) { 
        
$url 'http://eu.wowarmory.com/character-sheet.xml?r=' $this->server '&n=' $this->guildie
     
    } elseif( 
$this->query === 'achievements' ) { 
        
$url 'http://eu.wowarmory.com/character-achievements.xml?r=' $this->server '&cn=' $this->guildie '&gn=' .  
            
$this->guild '&c=168'
    } 

    
$ch curl_init(); 
    
curl_setopt ($chCURLOPT_URL$url); 
    
curl_setopt ($chCURLOPT_RETURNTRANSFER1); 
    
curl_setopt ($chCURLOPT_CONNECTTIMEOUT60); 
    
curl_setopt ($chCURLOPT_USERAGENT,  roster_gen::BROWSER); 
     
    
$url_string curl_exec($ch); 

    return 
simplexml_load_string($url_string); 
     
    
curl_close($ch); 
 } 
// end of pull_xml() 

// end class 

$roster = new roster_gen ('roster''stormrage''heroes+of+warcraft'NULL1); 
$xml_roster $roster->pull_xml(); 


// Change to querying achievements 
$roster->query='achievements'

// Set up the member array 
$member_data = array(); 
$id 0


foreach (
$xml_roster->guildInfo->guild->members->character as $char

    if (
$char['level'] == 80 && $char['name'] != 'chiyome' ) { 

        
$roster->guildie $char['name']; 
         
        
$xml_char $roster->pull_xml(); 

        
$ach find_category($xml_char->category); 

        
$a = array(); 

        
$a[0] = check_achievement($ach0); 
        
$a[1] = check_achievement($ach1); 
        
$a[2] = check_achievement($ach2); 
        
$a[3] = check_achievement($ach3); 
        
$a[4] = check_achievement($ach4); 
        
$a[5] = check_achievement($ach5); 
        
$a[6] = check_achievement($ach6); 
        
$a[7] = check_achievement($ach7); 
        
$a[8] = check_achievement($ach8); 
        
$a[9] = check_achievement($ach9); 
        
$a[10] = check_achievement($ach10);         
        
$a[11] = check_achievement($ach11); 
        
$a[12] = check_achievement($ach12); 
        
$a[13] = check_achievement($ach13); 
        
$a[14] = check_achievement($ach14); 
         
        
$member_data[$id] = array( 
                                
'name' => $char['name'], 
                                
'0' => $a[0], 
                                
'1' => $a[1], 
                                
'2' => $a[2], 
                                
'3' => $a[3], 
                                
'4' => $a[4], 
                                
'5' => $a[5], 
                                
'6' => $a[6], 
                                
'7' => $a[7], 
                                
'8' => $a[8], 
                                
'9' => $a[9], 
                                
'10' => $a[10],                                 
                                
'11' => $a[11], 
                                
'12' => $a[12], 
                                
'13' => $a[13], 
                                
'14' => $a[14
                                ); 
                                 
        
// Provide some output that it's doing stuff 
//        echo 'Updated: <b>' . $char['name'] . '</b> ' . $a[0] . '-' . $a[1] . '-' . $a[2] . '-' . $a[3] . '-' . $a[4] . '-' . $a[5] . '-' . $a[6] . '-' . $a[7] . '-' . $a[8] . '-' . $a[9] . '-' . $a[10] . '-' . $a[11] . '-' . $a[12] . '-' . $a[13] . '-' . $a[14] . '</br>'; 
                                 
        
$id++;                         
    } 
     
}  
/*
echo '</br>Inserting values into DB...</br>'; 

// Connect to the DB 
$db = mysql_connect($dbhost, $dbuser, $dbpasswd); 
$db_selected = mysql_select_db($dbname, $db); 

foreach ($member_data as $member) 

    $name = $member['name']; 

    $sql = "insert into ach_data2(name, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
       VALUES ('$name', '$member[0]', '$member[1]', '$member[2]', '$member[3]', '$member[4]', '$member[5]', '$member[6]', '$member[7]', '$member[8]', '$member[9]', '$member[10]', '$member[11]', '$member[12]', '$member[13]', '$member[14]')"; 
    $result = mysql_query($sql); 
     
   if(!$result); 
       echo mysql_error() . "\n";     


echo 'Database update completed.'; 
*/

function find_category($xml

    foreach(
$xml->achievement as $ach) { 
        if(
$ach['id'] == 1658
            return 
$ach
    } 



function 
check_achievement($achievement$num) {
if(
$achievement ['dateCompleted'] != NULL)
        return 
1;
        else 
    if(
$achievement->criteria[$num]['date'] != NULL
        return 
1
    else 
        return 
0


?>
this one works without a problem but the ones in my earlier posts don't
talonos is offline  
Reply With Quote