Hi leute ich habe ein kleine Problemchen. Ich habe mir ein Admininterface erstellt damit ich einfach neue scripts / users / userrechte / sprachen / texte bequem darüber anlegen kann ohne das alles per hand über phpmyadmin zu machen. habe das bis jetzt so gehandhabt:
ich erstelle eine hauptklasse welche je nach button klick eine methode aufruft zb:
if(isset($_POST["add"])){
return $this->addSiteVew();
}elseif(isset($_POST["edit"]){
return $this->editSiteVew();
}else{
return $this->showAllSites();
und habe dazu eine helper klasse erstellt welche parent von der "hauptklasse"(also die, die eigentlich aufgerufen wird und nicht die, welche die methoden zur verfügung stellt) ist. und in der helperklasse sind halt alle methoden mit dem quellcode.
nun aber will ich ja Seiten / Texte / Benutzer/ Rechte etc anzeigen, neu erstellen, bearbeiten ,löschen . Nachdem ich nun für jede "hauptklasse" die helperklassen erstellt, ist mir dabei aufgefallen das im grunde alles 1 zu 1 kopiert werden kann nur dass einige parameter geändert werden müssen.
Habe danach eine gesamte helper klasse erstellt mit einer methode setSettings und übergebe ihr settings. beim Anzeigen,Sortieren der Texte und Seiten klappt das wunderbar aber wenn ich nun einen neuen Text einfügen will oder bearbeiten da happerts nun. Mein Problem dabei ist, dass ich beim bearbeiten nicht einfach so vorhandene werte in der datenbank überschreiben will sondern davor prüfen ob kein feld leer ist und/oder ob die selben werte bereits in der datenbank stehen.
Beispiel für meine Seitenprüfung:
private function checkSiteName()
{
$query = "SELECT id FROM ".Defines::$tablePrefix."scripts "
."WHERE name = '%s' AND project_id = %d AND path='%s' AND rights = '%s'";
$result = DataBase::getInstance()->sql($query,
$this->siteName,
$this->prId,
$this->path,
$this->rights);
if(count($result) > 0){return false;
}else{
return true;
}
}
wenn ich nun aber texte überprüfen will mit der datenbank muss ich ja ganz andere spalten namen verwenden und ich kann die ja an die settings übergeben , das wäre zu viel bei manchen tabellen. also meine frage wäre jetzt
wie kann ich eine universelle query erstellen ohne die spalten namen vorher zu kennen oder die spalten namen mit parameter übergeben? das einzige was ich kenne, sind die daten, welche über eingabefelder geschickt werden und bei settingseinstellungen die tabelle, die angesprochen werden kann.
hoffe ihr könnt mir da weiterhelfen
MFG
PS: die seite kann man unter http://cccpmik.wmw.cc aufrufen (user:admin , pw:test)