Ich verstehe die Sache mit dem Überschneiden zwar nicht ganz, aber hier mal folgende Vorschläge.
1. Es wird auf jeden Fall nur eine Instanz der Klasse erzeugt mit der alle Datenbankabfragen durchgeführt werden. (außer greifst noch auf eine andere evtuell externe Datenbank zu -> dann neue Instanz)
2. Die Klasse sollte dazu da sein die Abfragen leichter und schneller stellen zu können. Du packst lediglich die mysql_befehle in eine Funktion und rufst diese dann auf, da sehe ich keine besonderen Vorteile ^^.
3. Versuche die ganzen Zeiger (queryID, resourceID) intern in der Klasse behandeln zu lassen. Dann brauchst du nur noch mit SQL und den letzendlichen Ergebnissmengen arbeiten, was dir schonmal die dauernde Parameterübergabe im Hauptprogramm ersparrt.
4. Hier mal paar Beispiele aus meiner Klasse:
PHP-Code:
// properties
var $host;
var $database;
var $user;
var $password;
var $resourceId;
var $queryId;
var $Record;
var $Row;
var $debugger;
// mehtods
function connect() {
if ($this->resourceID == 0) {
$this->resourceID = mysql_connect($this->host,$this->user,$this->password);
if (!$this->resourceID) {
$this->error(TRUE,"Sa_MySQL->connect() 'mysql_connect'","Cannot connect.");
} else {
if (!mysql_select_db($this->database,$this->resourceID)) {
$this->error(TRUE,"Sa_MySQL->connect() 'mysql_select_db'");
}
}
}
} // End: function - connect
function query($queryStr,$mode=MYSQL_ASSOC) {
$this->connect();
$record = array();
$this->queryID = mysql_query($queryStr,$this->resourceID);
if (!$this->queryID) {
$this->error(FALSE,"Sa_MySQL->query() 'mysql_query'",0,$queryStr);
} else {
$record = mysql_fetch_array($this->queryID,$mode);
}
if (empty($record)) {
$this->freeResult();
} else {
$result = $record;
if (!mysql_data_seek($this->queryID,0)) {
$this->error(FALSE,"Sa_MySQL-query() 'mysql_data_seek'","Pointer of data record could not be reseted.");
}
}
return $record;
} // End: function - query
function nextRecord($mode=MYSQL_ASSOC) {
if ($this->queryID) {
$record = mysql_fetch_array($this->queryID,$mode);
if (!$record) {
$this->freeResult();
$result = FALSE;
} else {
$result = $record;
}
} else {
$result = FALSE;
}
return $result;
} // End: function - nextRecord
Hoffe das verwirrt dich nicht mehr als es dir letzendlich hilft.