, * Andreas Oesterreicher , * Rudolf Hangl , * Gerald Simane-Sequens . */ #-------------------------------------------------------------------------------------------------- /* * * @classe komune_wettbewerbteam * * @param connectSQL Datenbankverbindung * @param uid Angemeleter Anwender * @param team_kurzbz Team des Angemeleter Anwenders zum Wettbewerb * @param wettbewerb_kurzbz Wettbewerbssubgruppen Key * * @return - kein Retourn des Konstruktors * */ require_once(dirname(__FILE__).'/basis_db.class.php'); class komune_wettbewerbteam extends basis_db { public $new; public $newWettbewerbteam; public $wettbewerbteam; public $uid; public $team_kurzbz; public $team_kurzbz_old; public $wettbewerb_kurzbz; public $schemaSQL="kommune."; // string Datenbankschema //-----Konstruktor function __construct($uid="",$team_kurzbz="",$wettbewerb_kurzbz="") { parent::__construct(); $this->InitWettbewerbteam(); $this->setuid($uid); $this->setTeam_kurzbz($team_kurzbz); $this->setWettbewerb_kurzbz($wettbewerb_kurzbz); } //-----Initialisierung-------------------------------------------------------------------------------------------- function InitWettbewerbteam() { $this->setError(''); $this->setNewWettbewerbteam(''); $this->setWettbewerbteam(''); $this->setuid(''); $this->setTeam_kurzbz(''); $this->setTeam_kurzbz_old(''); $this->setWettbewerb_kurzbz(''); } //-----NewRecord-------------------------------------------------------------------------------------------- function getNewRecord() { return $this->new; } function setNewRecord($switch) { $this->new=$switch; } //-----Error-------------------------------------------------------------------------------------------- function getError() { return $this->errormsg; } function setError($err) { $this->errormsg=$err; } //-----schemaSQL-------------------------------------------------------------------------------------------- function getSchemaSQL() { return $this->schemaSQL; } function setSchemaSQL($schemaSQL) { $this->schemaSQL=$schemaSQL; } //-----Neuer Datensatz-------------------------------------------------------------------------------------------- function getNewWettbewerbteam() { return $this->newWettbewerbteam; } function setNewWettbewerbteam($newWettbewerbteam) { $this->newWettbewerbteam=$newWettbewerbteam; } //-----Aenderung Datensatz wird wie Neuanlage gehandhabt ------------------------------------------------------------- function getUpdWettbewerbteam() { return $this->newWettbewerbteam; } function setUpdWettbewerbteam($newWettbewerbteam) { $this->newWettbewerbteam=trim($newWettbewerbteam); } //-----Aktueller Datensatz-------------------------------------------------------------------------------------------- function getWettbewerbteam() { return $this->wettbewerbteam; } function setWettbewerbteam($wettbewerbteam) { $this->wettbewerbteam=$wettbewerbteam; } //-----team_kurzbz-------------------------------------------------------------------------------------------- function getTeam_kurzbz() { return $this->team_kurzbz; } function setTeam_kurzbz($team_kurzbz) { $this->team_kurzbz=trim($team_kurzbz); } //-----team_kurzbz-------------------------------------------------------------------------------------------- function getTeam_kurzbz_old() { return $this->team_kurzbz_old; } function setTeam_kurzbz_old($team_kurzbz_old) { $this->team_kurzbz_old=trim($team_kurzbz_old); } //-----uid-------------------------------------------------------------------------------------------- function getUid() { return $this->uid; } function setUid($uid) { $this->uid=trim($uid); } //-----wettbewerb_kurzbz-------------------------------------------------------------------------------------------- function getWettbewerb_kurzbz() { return $this->wettbewerb_kurzbz; } function setWettbewerb_kurzbz($wettbewerb_kurzbz="") { $this->wettbewerb_kurzbz=trim($wettbewerb_kurzbz); } //------------------------------------------------------------------------------------------------- function saveWettbewerbteam($newWettbewerbteam="") { // Initialisierung $this->setError(''); // Plausib if (!empty($newWettbewerbteam)) $this->setNewWettbewerbteam($newWettbewerbteam); if (!is_array($this->getNewWettbewerbteam())) { $this->setError('Kein Wettbewerbsteam übergeben'); return false; } $newWettbewerbteam=$this->getNewWettbewerbteam(); // Daten uebernahme $cSchemaSQL=$this->getSchemaSQL(); $cTeam_kurzbz=$this->getTeam_kurzbz(); // Aenderungen muessen mit dem Team_kurzbz_old gekennzeichnet werden. Ansonst koennten falsche Daten geaendert werden $cTeam_kurzbz_old=$this->getTeam_kurzbz_old(); $cUserUID=$this->getUid(); // Vor der Verarbeitung sicherstellen das Alle Anwender gelesen werden $this->setUid(''); $this->setNewRecord(false); if (!$origWettbewerbteam=$this->loadWettbewerbteam()) { if ($this->getError()) // Beim Lesen ist ein Fehler aufgetreten return false; $this->setNewRecord(true); } $this->setUid($cUserUID); unset($cUserUID); if ($origWettbewerbteam && empty($cTeam_kurzbz_old)) // Datenrec bereits vorhanden { $this->setError('Das Team '.$cTeam_kurzbz.' ist bereits angelegt!'); return false; } $bTmpNewRecord=$this->getNewRecord(); // Neuanlage Switch sichern // Aus dem Array newWettbewerbteam die Teaminformationen heraus holen $cWettbewerb_kurzbz=(isset($newWettbewerbteam['wettbewerb_kurzbz']) ? $newWettbewerbteam['wettbewerb_kurzbz'] : ''); if (empty($cWettbewerb_kurzbz)) $cWettbewerb_kurzbz=(isset($newWettbewerbteam[0]['wettbewerb_kurzbz']) ? $newWettbewerbteam[0]['wettbewerb_kurzbz'] : ''); $team_bezeichnung=(isset($newWettbewerbteam['bezeichnung']) ? $newWettbewerbteam['bezeichnung'] : ''); $team_beschreibung=(isset($newWettbewerbteam['beschreibung']) ? $newWettbewerbteam['beschreibung'] : ''); $team_logo=(isset($newWettbewerbteam['logo']) ? $newWettbewerbteam['logo'] : null); $team_rang=(isset($newWettbewerbteam['rang']) ? $newWettbewerbteam['rang'] : null); // Ermitteln der Tabelle der Teamspieler if (isset($newWettbewerbteam['array_user'])) $array_userUID=$newWettbewerbteam['array_user']; else { $this->setError('Die Spieler / Team wurde nicht gefunden! '); return false; } $qry="select * from ".$cSchemaSQL."tbl_teambenutzer , ".$cSchemaSQL."tbl_wettbewerbteam "; $qry.=" where tbl_wettbewerbteam.team_kurzbz =tbl_teambenutzer.team_kurzbz "; $qry.=" and not ( UPPER(tbl_teambenutzer.team_kurzbz)='".addslashes(trim(strtoupper($cTeam_kurzbz_old)))."' and UPPER(tbl_teambenutzer.team_kurzbz)='".addslashes(trim(strtoupper($cTeam_kurzbz)))."' ) "; $qry.=" and UPPER(tbl_teambenutzer.uid) in ('".strtoupper(implode("','",$array_userUID))."') "; $qry.=" and UPPER(tbl_wettbewerbteam.wettbewerb_kurzbz)='".addslashes(trim(strtoupper($cWettbewerb_kurzbz)))."' ; "; // Datenbankabfrage if($this->db_query($qry)) { $rows=array(); while($row = $this->db_fetch_array()) { $this->setError(sprintf('Der Spieler %s wurde bereits im Team %s im Wettbewerb %s gefunden ! ',$row['uid'],$row['team_kurzbz'],$row['wettbewerb_kurzbz'])); return false; } } $arrTmpCheckUID=array(); // Aus dem Array nur die Belegten UIDs suchen for ($zeileIND=0;$zeileINDsetNewRecord($bTmpNewRecord); $this->db_query(" BEGIN; "); $qry=""; // Neuanlage - Insert if ($this->getNewRecord()) { $qry.=" INSERT into ".$cSchemaSQL."tbl_team (team_kurzbz,bezeichnung,beschreibung,logo) VALUES ('".addslashes(trim($cTeam_kurzbz))."','".addslashes(trim($team_bezeichnung))."','".addslashes(trim($team_beschreibung))."','".addslashes(trim($team_logo))."'); "; for ($zeileIND=0;$zeileIND$cTmpUID=$cTmpUID; } // Suchen Neuanlage - Update (nach Update den Array Eintrag entleeren sonst wird er nachher geloescht) for ($zeileIND=0;$zeileIND$cTmpUID)) { $qry.=" UPDATE ".$cSchemaSQL."tbl_teambenutzer set team_kurzbz='".addslashes(trim($cTeam_kurzbz))."' WHERE UPPER(uid)=UPPER('".addslashes($cTmpUID)."') AND upper(team_kurzbz)=upper('".$cTeam_kurzbz_old."'); "; unset($arrTmpCheckUID->$cTmpUID); } elseif (!isset($arrTmpCheckUID->$cTmpUID)) { $qry.=" INSERT into ".$cSchemaSQL."tbl_teambenutzer (uid, team_kurzbz) VALUES ('".addslashes(trim($cTmpUID))."','".addslashes(trim($cTeam_kurzbz))."'); "; } } if (isset($zeileIND)) unset($zeileIND); if (isset($array_userUID)) unset($array_userUID); // Alle die noch in der DB-Alt Array sind muessen geloeschte sein while (list( $key, $value ) = each($arrTmpCheckUID) ) $qry.=" DELETE from ".$cSchemaSQL."tbl_teambenutzer WHERE UPPER(uid)=UPPER('".addslashes($value)."') AND upper(team_kurzbz)=upper('".$cTeam_kurzbz_old."'); "; if (isset($key)) unset($key); if (isset($value)) unset($value); if (isset($arrTmpCheckUID)) unset($arrTmpCheckUID); } if($this->db_query($qry)) { $this->db_query(" COMMIT; "); if (!$this->loadWettbewerbteam()) { return false; } } else { $this->db_query(" ROLLBACK; "); $this->setError($this->db_last_error()); return false; } return $this->getWettbewerbteam(); } //------------------------------------------------------------------------------------------------- function loadWettbewerbteam() { $this->setError(''); $cSchemaSQL=$this->getSchemaSQL(); $tmpUid=$this->getUid(); $cTeam_kurzbz=$this->getTeam_kurzbz_old(); if (empty($cTeam_kurzbz)) $cTeam_kurzbz=$this->getTeam_kurzbz(); $cWettbewerb_kurzbz=$this->getWettbewerb_kurzbz(); $qry=""; $qry.="SELECT * FROM ".$cSchemaSQL."tbl_teambenutzer,".$cSchemaSQL."tbl_team,".$cSchemaSQL."tbl_wettbewerbteam "; $qry.=" WHERE UPPER(tbl_team.team_kurzbz)=UPPER(tbl_teambenutzer.team_kurzbz) "; $qry.=" AND UPPER(tbl_wettbewerbteam.team_kurzbz)=UPPER(tbl_team.team_kurzbz) "; // Check wie Postgre darauf reagiert Performenc $qry.=" AND UPPER(tbl_wettbewerbteam.team_kurzbz)=UPPER(tbl_teambenutzer.team_kurzbz) "; if (!empty($cTeam_kurzbz)) $qry.=" AND UPPER(tbl_teambenutzer.team_kurzbz)=UPPER('".$cTeam_kurzbz."') "; if (!empty($tmpUid)) $qry.=" AND UPPER(tbl_teambenutzer.uid)=UPPER('".addslashes($tmpUid)."') "; // Suche nach einem einzigen Wettbewerb if (!is_array($cWettbewerb_kurzbz) && !empty($cWettbewerb_kurzbz) ) { $qry.=" AND UPPER(tbl_wettbewerbteam.wettbewerb_kurzbz)=UPPER('".$cWettbewerb_kurzbz."') "; } elseif (is_array($cWettbewerb_kurzbz) && count($cWettbewerb_kurzbz)>0 ) { if (isset($cWettbewerb_kurzbz[0]['wettbewerb_kurzbz'])) // Check ob nicht kpl. Tablestruck in Array { $tmpWETTBEWERB=array(); for ($indZEILE=0;$indZEILEdb_query($qry)) { $rows=array(); while($row = $this->db_fetch_array()) { $rows[]=$row; } $this->setWettbewerbteam($rows); } else { $this->setError($this->db_last_error()); return false; } return $this->getWettbewerbteam(); } } // Class komune_wettbewerbteam Ende ?>