This is an odd problem, and I'm not sure WHERE it's happening, if it's a misconfiguration with mySQL, PHP, or if it's just bad programming. so i'll try to set this one up for you:
mysql_classes.php:
contains-
class mysql_classes {
//variables related to connection, like $dbname, $dbpwd, etc.
function connect() {
//connects to database
}
function query($SQL) {
//queries $SQL, returns result ID
}
function fetchArray($resultID) {
//uses mysql_fetch_array to return row in an array, returns array
}
//misc. other member functions
}
}
global.php
loads required resources, e.g: require("mysql_classes.php")
instantiates mysql_classes via: $DB = new mysql_classes;
page1.php
contains new class that uses mysql_classes, roughly:
class utility_classes {
//required vars for class
function one() {
global $DB; //makes $DB object available to member function, $DB is mysql_classes
//executes some code, including mySQL queries and fetch_array via $DB->query and $DB->fetchArray
if($this->two($some_var)) {
return true;
} else {
return false;
}
function two() {
global $DB; //makes $DB available as above
//executes some code, including:
$result = $DB->query($SQL)
while($row = $DB->fetchArray($result)) {
//some code
}
if(//blahblahblah) return true;
}
}
page1.php later instantiates utility_classes and calls one(), which then calls two() to check for validity by checking a mySQL table.
I get a warning stating that $result in two() is an invalid mysql result identifier, but i JUST called it in the previous line. if i try to echo $result to the screen, it is null.
I hope this makes some sense to someone, like I said it's a wierd problem.