id = $id; } /** reads person data from $_POST array */ //------------------------------------------------ function fromPost(){ //------------------------------------------------ $this->firstname = utf8_decode($_POST["pFirstname"]); $this->surname = utf8_decode($_POST["pSurname"]); $this->email = utf8_decode($_POST["pEmail"]); $this->address = utf8_decode($_POST["pAddress"]); $this->zip = utf8_decode($_POST["pZip"]); $this->city = utf8_decode($_POST["pCity"]); $this->country = utf8_decode($_POST["pCountry"]); $this->phone = utf8_decode($_POST["pPhone"]); $this->acad = utf8_decode($_POST["pAcad"]); $this->gender = utf8_decode($_POST["pGender"]); $this->currentEvent = utf8_decode($_POST['eventTitle']); //load genre $query = sprintf("SELECT eventId FROM bruckm_ticketdate WHERE id = %d", $_POST['dateID']); $result = dbQuery($query); $line = mysqli_fetch_array($result, MYSQLI_ASSOC); $query = sprintf("SELECT genre FROM bruckm_ticketevent WHERE flexiconId = %d LIMIT 1", $line['eventId']); $result = dbQuery($query); $line = mysqli_fetch_array($result, MYSQLI_ASSOC); $this->currentGenre = $line['genre']; } /** installs the table */ //------------------------------------------------ function install(){ //------------------------------------------------ $query = sprintf("CREATE TABLE IF NOT EXISTS bruckm_ticketcustomer ( id INT NOT NULL AUTO_INCREMENT, firstname VARCHAR(64) NOT NULL, surname VARCHAR(64) NOT NULL, email VARCHAR(255) NOT NULL, gender VARCHAR(1) NOT NULL DEFAULT 'x', address VARCHAR(128) NOT NULL, zip SMALLINT NOT NULL, city VARCHAR(64) NOT NULL, country VARCHAR(32) NOT NULL, phone VARCHAR(24) NOT NULL, acad VARCHAR(16) NOT NULL, eventCount INT NOT NULL DEFAULT 1, events TEXT, genres TEXT, creationDate DATE, newsletter ENUM ('no','yes') DEFAULT 'yes', PRIMARY KEY(id), INDEX(email), INDEX(surname), INDEX(firstname) )"); dbQuery($query); } /** saves the customer to the database */ //----------------------------------------------- function save(){ //----------------------------------------------- if(empty($this->surname)){ return; } //create new customer if($this->id == 0){ //check if newsletter is disabled for this e-mail address $newsletter = "yes"; $query = sprintf("SELECT id FROM bruckm_ticketcustomer WHERE email = %s AND newsletter = 'no' LIMIT 1", sqlstring($this->email)); $result = dbQuery($query); if(mysql_num_rows($result) > 0){ $newsletter = "no"; } //insert into database $query = sprintf("INSERT INTO bruckm_ticketcustomer (firstname, surname, email, gender, address, zip, city, country, phone, acad, events, genres, creationDate, newsletter) VALUES (%s, %s, %s, %s, %s, %d, %s, %s, %s, %s, %s, %s, NOW(), %s)", sqlstring($this->firstname), sqlstring($this->surname), sqlstring($this->email), sqlstring($this->gender), sqlstring($this->address), sqlnum($this->zip), sqlstring($this->city), sqlstring($this->country), sqlstring($this->phone), sqlstring($this->acad), sqlstring($this->currentEvent), sqlstring($this->currentGenre), sqlstring($newsletter)); dbQuery($query); $this->id = mysql_insert_id(); } //update existing customer else{ $query = sprintf("SELECT * FROM bruckm_ticketcustomer WHERE id = %d", $this->id); $result = dbQuery($query); $line = mysqli_fetch_array($result, MYSQLI_ASSOC); $zip = $line['zip']; $city = $line['city']; $address = $line['address']; $phone = $line['phone']; $acad = $line['acad']; if($zip != $this->zip && !empty($this->zip)) $zip = $this->zip; if($city != $this->city && !empty($this->city)) $city = $this->city; if($address != $this->address && !empty($this->address)) $address = $this->address; if($phone != $this->phone && !empty($this->phone)) $phone = $this->phone; if($acad != $this->acad && !empty($this->acad)) $acad = $this->acad; $query = sprintf("UPDATE bruckm_ticketcustomer SET zip = %d, city = %s, address = %s, phone = %s, acad = %s, eventCount = eventCount+1, events = CONCAT(%s, events), genres = CONCAT(%s, genres) WHERE id = %d", sqlnum($zip), sqlstring($city), sqlstring($address), sqlstring($phone), sqlstring($acad), sqlstring($this->currentEvent.", "), sqlstring($this->currentGenre.","), sqlnum($this->id)); dbQuery($query); } } /** loads data from database */ //----------------------------------------------- function load(){ //----------------------------------------------- if($this->id == 0){ return; } $query = sprintf("SELECT firstname,surname FROM bruckm_ticketcustomer WHERE id = %d", $this->id); $result = dbQuery($query); $line = mysqli_fetch_array($result, MYSQLI_ASSOC); $this->firstname = $line['firstname']; $this->surname = $line['surname']; } /** deletes the customer */ //----------------------------------------------- function delete(){ //----------------------------------------------- $query = sprintf("DELETE FROM bruckm_ticketcustomer WHERE id = %d", $this->id); dbQuery($query); } /** looks if the customer is already in the database and loads id * @return true, if the customer is in the database */ //----------------------------------------------- function findInDatabase(){ //----------------------------------------------- $query = sprintf("SELECT id FROM bruckm_ticketcustomer WHERE email = %s AND surname = %s AND firstname = %s LIMIT 1", sqlstring($this->email), sqlstring($this->surname), sqlstring($this->firstname)); $result = dbQuery($query); if($line = mysqli_fetch_array($result, MYSQLI_ASSOC)){ $this->id = $line['id']; #$this->load(); return true; } return false; } /** returns person data as xml * @return xml string */ //---------------------------------------------- function toXml(){ //---------------------------------------------- $xml = "id."\" firstname=\"".$this->firstname."\" surname=\"".$this->surname."\" />"; return $xml; } /** returns the db id * @return id */ //----------------------------------------------- function getId(){ //----------------------------------------------- return $this->id; } /** returns the e-mail address * @return e-mail */ //----------------------------------------------- function getEmail(){ //----------------------------------------------- return $this->email; } /** returns the customer's gender * @return gender */ //----------------------------------------------- function getGender(){ //----------------------------------------------- return $this->gender; } /** checks if the person has an academic title * @return true, if title */ //----------------------------------------------- function hasAcademicTitle(){ //----------------------------------------------- return !empty($this->acad); } /** returns the academic title * @return title */ //----------------------------------------------- function getAcademicTitle(){ //----------------------------------------------- return $this->acad; } /** return firstname * @return firstname */ //----------------------------------------------- function getFirstname(){ //----------------------------------------------- return $this->fisrtname; } /** return surname * @return surname */ //----------------------------------------------- function getSurname(){ //----------------------------------------------- return $this->surname; } /** return firstname + surname * @return name */ //----------------------------------------------- function getFullName(){ //----------------------------------------------- return $this->firstname." ".$this->surname; } }; ?>