MasterACE14 Posted March 18, 2009 Share Posted March 18, 2009 I have a page pagination script which is poorly coded to say the least. It is throwing me this notice... Notice: Undefined variable: usersA in /home/eliteace/public_html/realmbattles_dev/test.php on line 110 <?php // connect to database etc error_reporting(E_ALL); function getUserDetails($id, $fields = "*") { $str = "select $fields from `UserDetails` where ID='$id' "; //echo $str; $q = @mysql_query($str); if (!$q) { print('Query failed: ' . mysql_error()); return; } if (!@mysql_num_rows($q)) { return 0; } else { $st = ""; $st = mysql_fetch_object($q); $st->untrainedSold = floor($st->untrainedSold); return $st; } } //////////////////// function getRanksList($page) { global $conf; if($page == 0) $page = 2; $start = ($page - 1) * $conf['users_per_page']; $str = "SELECT id,Rank FROM `AllRanks` WHERE Rank>0 ORDER BY `Rank` ASC LIMIT $start,{$conf['users_per_page']}"; //print $str; $q = @mysql_query($str); if (!$q) { print('Query failed: ' . mysql_error()); return; } if (!@mysql_num_rows($q)) { return; } else { $st = ""; $i = 0; while ($row = mysql_fetch_object($q)) { $st[$i] = $row; $i++; } return $st; } } function getRanksUsersList($page, $fields = " ID, userName, trainedAttackSold, trainedAttackMerc, trainedDefSold, trainedDefMerc, untrainedSold, untrainedMerc, spies, race, gold ") { //global $conf; $users = getRanksList($page); for ($i = 0; $i < count($users); $i++) { $usersA[$i] = getUserDetails($users[$i]->userID, $fields); $usersA[$i]->Rank = $users[$i]->Rank; } return $usersA; // line 110 } // Test File $users = getRanksUsersList($cgi['page']); for ($i = 0; $i < count($users); $i++) { $users[$i]->ID."<br />"; } ?> The function getUserDetails works everywhere else in the site, Don't know why it won't work here. Any help is GREATLY appreciated. Regards ACE Link to comment https://forums.phpfreaks.com/topic/149956-undefined-object-variable/ Share on other sites More sharing options...
syed Posted March 18, 2009 Share Posted March 18, 2009 It appears as though you have not defines $usersA in the script you have supplied. Try defining it. This message is a notice, which will only appear when you have error_reporting(E_ALL); which you have. You will need to declare the variable $usersA. Link to comment https://forums.phpfreaks.com/topic/149956-undefined-object-variable/#findComment-787547 Share on other sites More sharing options...
MasterACE14 Posted March 18, 2009 Author Share Posted March 18, 2009 I don't see why it isn't being declared. <?php function getRanksUsersList($page, $fields = " ID, userName, trainedAttackSold, trainedAttackMerc, trainedDefSold, trainedDefMerc, untrainedSold, untrainedMerc, spies, race, gold ") { //global $conf; $users = getRanksList($page); for ($i = 0; $i < count($users); $i++) { $usersA[$i] = getUserDetails($users[$i]->userID, $fields); $usersA[$i]->Rank = $users[$i]->Rank; } return $usersA; // line 110 } if it's getting the users info and looping through all users in the database and assigning that user 'object' to $usersA then it should be defined. But it's not? ??? Link to comment https://forums.phpfreaks.com/topic/149956-undefined-object-variable/#findComment-787560 Share on other sites More sharing options...
kenrbnsn Posted March 18, 2009 Share Posted March 18, 2009 Just create it in that function as an empty array before you use it. <?php function getRanksUsersList($page, $fields = " ID, userName, trainedAttackSold, trainedAttackMerc, trainedDefSold, trainedDefMerc, untrainedSold, untrainedMerc, spies, race, gold ") { //global $conf; $usersA = array(); $users = getRanksList($page); for ($i = 0; $i < count($users); $i++) { $usersA[$i] = getUserDetails($users[$i]->userID, $fields); $usersA[$i]->Rank = $users[$i]->Rank; } return $usersA; } ?> Ken Link to comment https://forums.phpfreaks.com/topic/149956-undefined-object-variable/#findComment-787563 Share on other sites More sharing options...
MasterACE14 Posted March 20, 2009 Author Share Posted March 20, 2009 That fixed the notice but results still wouldn't show up when echo'ing them. I've changed the script abit and I'm now getting... Warning: Attempt to assign property of non-object in /home/eliteace/public_html/realmbattles_dev/test.php on line 109 Script is Working... Correctly? not sure. code... <?php error_reporting(E_ALL); function getUserDetails($id, $fields = "*") { $str = "select $fields from `UserDetails` where ID='$id' "; //echo $str; $q = @mysql_query($str); if (!$q) { print('Query failed: ' . mysql_error()); return; } if (!@mysql_num_rows($q)) { return 0; } else { $st = ""; $st = mysql_fetch_object($q); $st->untrainedSold = floor($st->untrainedSold); return $st; } } //////////////////// function getRanksList($page) { global $conf; if($page == 0) $page = 2; $start = ($page - 1) * $conf['users_per_page']; $str = "SELECT id,Rank FROM `AllRanks` WHERE Rank>0 ORDER BY `Rank` ASC LIMIT $start,{$conf['users_per_page']}"; //print $str; $q = @mysql_query($str); if (!$q) { print('Query failed: ' . mysql_error()); return; } if (!@mysql_num_rows($q)) { return; } else { $st = ""; $i = 0; while ($row = mysql_fetch_object($q)) { $st[$i] = $row; $i++; } return $st; } } function getRanksUsersList($page, $fields = " ID, userName, trainedAttackSold, trainedAttackMerc, trainedDefSold, trainedDefMerc, untrainedSold, untrainedMerc, spies, race, gold ") { //global $conf; $usersA = array(); $users = getRanksList($page); for ($i = 0; $i < count($users); $i++) { $usersA[$i] = getUserDetails($users[$i]->ID, $fields); $usersA[$i]->Rank = $users[$i]->Rank; } return $usersA; } // Test File $users = getRanksUsersList($_GET['page']); for ($i = 0; $i < count($users); $i++) { $users[$i]->ID."<br />"; } $users2 = getRanksList($_GET['page']); for ($i = 0; $i < count($users2); $i++) { $users2[$i]->ID."<br />"; } echo "Script is Working... Correctly? not sure." ?> Link to comment https://forums.phpfreaks.com/topic/149956-undefined-object-variable/#findComment-789246 Share on other sites More sharing options...
MasterACE14 Posted March 20, 2009 Author Share Posted March 20, 2009 bumpZ Link to comment https://forums.phpfreaks.com/topic/149956-undefined-object-variable/#findComment-789347 Share on other sites More sharing options...
MasterACE14 Posted March 21, 2009 Author Share Posted March 21, 2009 still no luck with trying different things. Link to comment https://forums.phpfreaks.com/topic/149956-undefined-object-variable/#findComment-790037 Share on other sites More sharing options...
MasterACE14 Posted March 21, 2009 Author Share Posted March 21, 2009 still nothing :-\ Link to comment https://forums.phpfreaks.com/topic/149956-undefined-object-variable/#findComment-790224 Share on other sites More sharing options...
kenrbnsn Posted March 21, 2009 Share Posted March 21, 2009 There isn't a line 109 in the script you posted. Care to share with us the current script and/or the real error? Ken Link to comment https://forums.phpfreaks.com/topic/149956-undefined-object-variable/#findComment-790283 Share on other sites More sharing options...
MasterACE14 Posted March 22, 2009 Author Share Posted March 22, 2009 The full test.php is... <?php /** * @author ACE * @copyright 2009 */ include("config/connect.php"); function realm() { // workout what realm this is if(!file_exists("realm.txt")) { die("Realm file is not present!"); } $file = fopen("realm.txt","r") or die("Unable to Figure out what Realm this is!"); while(!feof($file)) { $content = fgets($file); } fclose($file); return $content; } if(realm() == "main") { $mysql['database'] = "eliteace_realmbattles"; } elseif(realm() == "test") { $mysql['database'] = "eliteace_realmbattlesdev"; } $conf["sites_database_name"] = $mysql['database']; $conf["sites_database_login"] = $mysql['user']; $conf["sites_database_password"] = $mysql['pass']; $conf["path"] = $_SERVER['SERVER_NAME']; include("lib.php"); $db = @mysql_connect('localhost', $conf["sites_database_login"], $conf["sites_database_password"]); if (!$db) { die(mysql_error()); } if (!@mysql_select_db($conf["sites_database_name"], $db)) { $str = mysql_error(); if (isset($str)) { die($str); } } // error_reporting(E_ALL); function getUserDetails($id, $fields = "*") { $str = "select $fields from `UserDetails` where ID='$id' "; //echo $str; $q = @mysql_query($str); if (!$q) { print('Query failed: ' . mysql_error()); return; } if (!@mysql_num_rows($q)) { return 0; } else { $st = ""; $st = mysql_fetch_object($q); $st->untrainedSold = floor($st->untrainedSold); return $st; } } //////////////////// function getRanksList($page) { global $conf; if($page == 0) $page = 2; $start = ($page - 1) * $conf['users_per_page']; $str = "SELECT id,Rank FROM `AllRanks` WHERE Rank>0 ORDER BY `Rank` ASC LIMIT $start,{$conf['users_per_page']}"; //print $str; $q = @mysql_query($str); if (!$q) { print('Query failed: ' . mysql_error()); return; } if (!@mysql_num_rows($q)) { return; } else { $st = ""; $i = 0; while ($row = mysql_fetch_object($q)) { $st[$i] = $row; $i++; } return $st; } } function getRanksUsersList($page, $fields = " ID, userName, trainedAttackSold, trainedAttackMerc, trainedDefSold, trainedDefMerc, untrainedSold, untrainedMerc, spies, race, gold ") { //global $conf; $usersA = array(); $users = getRanksList($page); for ($i = 0; $i < count($users); $i++) { $usersA[$i] = getUserDetails($users[$i]->ID, $fields); $usersA[$i]->Rank = $users[$i]->Rank; } return $usersA; } function searchRanksUsersListCount($str) { $str = "SELECT COUNT(*) FROM `UserDetails` INNER JOIN `AllRanks` ON UserDetails.ID = AllRanks.id WHERE Rank>0 AND active='1' AND userName LIKE '$str'"; //echo $str; $q = @mysql_query($str); if (!$q) { print('Query failed: ' . mysql_error()); return; } if ($q) { $st = mysql_fetch_array($q); return $st[0]; } else { return 0; } } function searchRanksUsersList($page, $str) { global $conf; $start = ($page + 1) * $conf['users_per_page']; $str = "SELECT `AllRanks`.`id`, `UserDetails`.`ID`, `AllRanks`.`Rank`, `UserDetails`.`userName`, `UserDetails`.`active` FROM `UserDetails`,`AllRanks` WHERE `UserDetails`.`ID` = `AllRanks`.`id` AND Rank>0 AND active='1' AND userName LIKE '$str' ORDER BY `AllRanks`.`Rank` ASC "; //print $str; $q = @mysql_query($str); if (!$q) { print('Query failed: ' . mysql_error()); return; } if (!@mysql_num_rows($q)) { return; } else { $st = ""; $i = 0; while ($row = mysql_fetch_object($q)) { $row->untrainedSold = floor($row->untrainedSold); $st[$i] = $row; $i++; } return $st; } } function getUserRanks($id) { $str = "SELECT * FROM `AllRanks` where `id`='$id'"; //echo $str; $q = @mysql_query($str); if (!$q) { print('Query failed: ' . mysql_error()); return; } if (!@mysql_num_rows($q)) { $st->Rank = 'unranked'; $st->SARank = 'unranked'; $st->DARank = 'unranked'; $st->CRank = 'unranked'; return $st; } else { $st = ""; $st = mysql_fetch_object($q); if (!$st->Rank) { $st->Rank = 'unranked'; } if (!$st->SARank) { $st->SARank = 'unranked'; } if (!$st->DARank) { $st->DARank = 'unranked'; } if (!$st->CRank) { $st->CRank = 'unranked'; } return $st; } } // Test File $users = getRanksUsersList($_GET['page']); for ($i = 0; $i < count($users); $i++) { $users[$i]->ID."<br />"; } $users2 = getRanksList($_GET['page']); for ($i = 0; $i < count($users2); $i++) { $users2[$i]->ID."<br />"; } echo "Script is Working... Correctly? not sure." ?> and lib.php that is included contains the $conf array. $conf['users_per_page'] = 50; `AllRanks` table structure is... CREATE TABLE IF NOT EXISTS `AllRanks` ( `id` int(11) NOT NULL default '0', `Rank` bigint(225) unsigned NOT NULL default '0', `SARank` bigint(225) unsigned NOT NULL default '0', `DARank` bigint(225) unsigned NOT NULL default '0', `CRank` bigint(225) unsigned NOT NULL default '0', `IRank` bigint(255) unsigned NOT NULL default '0', `random` int(11) NOT NULL default '1', PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; output: Warning: Attempt to assign property of non-object in /home/eliteace/public_html/realmbattles_dev/test.php on line 109 Warning: Attempt to assign property of non-object in /home/eliteace/public_html/realmbattles_dev/test.php on line 109 Warning: Attempt to assign property of non-object in /home/eliteace/public_html/realmbattles_dev/test.php on line 109 Warning: Attempt to assign property of non-object in /home/eliteace/public_html/realmbattles_dev/test.php on line 109 Warning: Attempt to assign property of non-object in /home/eliteace/public_html/realmbattles_dev/test.php on line 109 Warning: Attempt to assign property of non-object in /home/eliteace/public_html/realmbattles_dev/test.php on line 109 Warning: Attempt to assign property of non-object in /home/eliteace/public_html/realmbattles_dev/test.php on line 109 Warning: Attempt to assign property of non-object in /home/eliteace/public_html/realmbattles_dev/test.php on line 109 Script is Working... Correctly? not sure. Link to comment https://forums.phpfreaks.com/topic/149956-undefined-object-variable/#findComment-790616 Share on other sites More sharing options...
MasterACE14 Posted March 24, 2009 Author Share Posted March 24, 2009 bump Link to comment https://forums.phpfreaks.com/topic/149956-undefined-object-variable/#findComment-792409 Share on other sites More sharing options...
MasterACE14 Posted March 27, 2009 Author Share Posted March 27, 2009 anybody? :-\ Link to comment https://forums.phpfreaks.com/topic/149956-undefined-object-variable/#findComment-794977 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.