Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak zawsze Klasy...
KaGe
post
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?
Go to the top of the page
+Quote Post

Posty w temacie
- KaGe   Jak zawsze Klasy...   7.05.2004, 23:57:56
- - patrycjusz   hmmm... i jeszcze raz hmm... kompletnie nie wiem o...   8.05.2004, 01:10:11
- - KaGe   Jak to połączyć   9.05.2004, 22:22:08
- - boloo77   Sprobuje odpowiedzieć na pkt 1. Przynajmniej jak j...   9.05.2004, 23:20:53


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 15:59