![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 27.04.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
[php:1:78eaaa3023]<?php
Class Object { var $db_data; var $data; var $table; function Object($table = null, $data = array(), $db_data = array()) { $this->table = $table; $this->data = $data; $this->db_data = $db_data; } function SetData($data = array()) { $this->data = $data; } function ReturnStringAND($data=null) { if (!is_array($data)) { $data = $this->data; } $string = array(); foreach($data as $key => $value) { if (!is_numeric($value)) { $value = "'$value'"; } $string[] = "$key = $value"; } $string = implode(" AND ", $string); return $string; } function ReturnString($data=null) { if (!is_array($data)) { $data = $this->data; } $string = array(); foreach($data as $key => $value) { if (!is_numeric($value)) { $value = "'$value'"; } $string[] = "$key = $value"; } $string = implode(", ", $string); return $string; } function ReturnFields() { $fields = array(); foreach($this->data as $key => $value) { $fields[] = "$key"; } $fields = implode(",", $fields); return $fields; } function ReturnValues() { $values = array(); foreach($this->data as $key => $value) { if (!is_numeric($value)) { $value = "'$value'"; } $values[] = "$value"; } $values = implode(",", $values); return $values; } } Class User extends Object { var $data; function User($data = array()) { $this->table = "users"; $this->data = $data; } } Class Session { function Login($user) { } } Class MySQL { var $host = "localhost"; var $login = "login"; var $password = "pass"; var $name = "name"; function MySQL() { mysql_pconnect($this->host, $this->login, $this->password); mysql_select_db($this->name); } } Class Database extends MySQL { function Get($object) { $o = mysql_query("SELECT * FROM " . $object->table . " WHERE " . $object->ReturnString()); $data = mysql_fetch_assoc($o); $object->setdata($data); return new Object($object->table, $data, $data); } function Add($object) { mysql_query("INSERT INTO " . $object->table . " (" . $object->ReturnFields() . ") VALUES (" . $object->ReturnValues() . ")"); return new Object($object->table, $object->data, $object->data); } function Save($object) { mysql_query("UPDATE " . $this->table ." SET " . $object->returnString() . " WHERE " . $object->returnStringAND($object->db_data)); return new Object($object->table, $object->data, $object->data); } function Delete($object) { mysql_query("DELETE FROM users WHERE " . $object->returnString()); return mysql_affected_rows(); } } ?>[/php:1:78eaaa3023] Mam tu podział na to, że mam oddzielne klasy dla każdej "warstwy" strony. Czy moje rozwiązanie jest jak by to nazwać... wydajne? bo w sumie to funkcjonalne w jakiś sposób na pewno... Jest jeszcze kwestia logowania użytkowników. Mianowicie zastanawiam się, czy funkcje dot. logowania user dać jemu samemu do klasy - User, czy też zrobić klasę Session i tam wrzucić logowanie itd - natomiast sprawdzanie danych itd.. odbywac się będzie właśnie w metodach Session. Czy to jest dobre rozwiązanie? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 15:59 |