![]() |
![]() |
![]()
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? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 1.10.2003 Skąd: Mikołów Ostrzeżenie: (0%) ![]() ![]() |
Sprobuje odpowiedzieć na pkt 1. Przynajmniej jak ja to bym widział
[php:1:505b083a48]<?php Class atom { //właściwośći i metody... } Class czastka { var $atomy=array();//tablica obiektow atom z któych składa się cząstka //właściwośći i metody (w tym sterujące atomami - dołączanie atomów usuwanie itp)... } Class Komorka { var $czastki=array();//tablica obiektów cząstek z których składa się komórka //właściwości i metody (w tym sterujące cząstkami w komórce)... } ?> [/php:1:505b083a48] Oczywiście może powstać konieczność określenia pozycji atomu w cząstce. Wtedy możemy zrobić to tak: [php:1:505b083a48]<?php class atom_w_czastce extends atom { var $pozycja_w_czastce; } //i teraz Class czastka { var $atomy=array();//tablica obiektow atom_w_czastce z których składa się cząstka (wraz z określeniem pozycji atomu w cząstce) //właściwośći i metody (w tym sterujące atomami - dołączanie atomów usuwanie itp)... } ?>[/php:1:505b083a48] lub ew. [php:1:505b083a48]<?php class atom_w_czastce { var $atom;//obiekt atom var $pozycja_w_czastce; } //i teraz Class czastka { var $atomy=array();//tablica obiektow atom_w_czastce z których składa się cząstka (wraz z określeniem pozycji atomu w cząstce) //właściwośći i metody (w tym sterujące atomami - dołączanie atomów usuwanie itp)... } ?>[/php:1:505b083a48] Mam nadzieje że nie zamieszałem... (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 11:00 |