[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?