- Motorola Edge 30 Neo - wake up, Jr...
- Hivatalos a OnePlus 13 startdátuma
- Samsung Galaxy Fit 3 - keveset, de jól
- Huawei Mate X6 - keleti oldal, nyugati oldal
- Samsung Galaxy A56 - megbízható középszerűség
- Milyen okostelefont vegyek?
- Kicsomagolták a Vivo X Fold 5-öt (videó és fotók)
- Szerkesztett és makrofotók mobillal
- iPhone topik
- Honor 200 Pro - mobilportré
Új hozzászólás Aktív témák
-
Frigo
őstag
Hali
Az Active Record mintának nézz utána .Lényeg ,hogy az osztályodból létrejött példányok képviselik az adatbázisod egy sorát .Ha példányosításkor átadsz a konstruktornak egy értéket az a sort azonosító elsődleges kulcs lesz ekkor betölti a dbtable osztály load metódusa az adott sor értékeit az objektumba ,ha nem adsz meg értéket akkor egy üres objektum jön létre ahol te adod meg manuálisan a oszlopok értékeit. Save metódus hívásakor pedig attól függően ,hogy meg volt-e adva a primery key példányosításakor ,updateli az adatbázisban levő sort vagy újat szúr be.Neked lényegében absztrakt dbtable osztály load és save metódusát kell megvalósítanod.
-
-
A $this az aktuális osztály példányosításából előállított objektumot hivatkozza.
A -> operátor pedig az megmondja, hogy azt adott osztály melyik metódusát szeretnék alkalmazni.
Javaslat tanulmányozd át a PHP OO implementációját.@6766: Mivel a dbtable osztályt örökli a users osztály ezért arra is szükség lenne, hogy el tudjuk dönteni, hogy rendben van-e.
Másik dolog, hogy amit te "DB implementációnak" neveztél az valójában a $u változó "tartalma".
$u = new User(1);
var_dump($u);Akkor lehetne okosat mondani, hogy ha láthatnánk a dbtable osztályt.
-
Shono
aktív tag
Inkább leírom a teljes problémát:
Ezt a kódrészletet kéne átalakítanom úgy, hogy a lentebbi DB-t implementálja. Minden segítséget megköszönök!
/*PHP kód*/
-------------------------------------------------------
require_once("class.php");
class User extends dbtable
{
public $table = 'users';
public $pk = 'UserID';
public $varPrefix = 'usr_';
public $usr_Nev;
public $usr_UserID;
function __construct($userId=false)
{
if (intval($userId)>0)
{
$this->usr_UserID = intval($userId);
$this->load($this->usr_UserID);
}
}
}
echo "<pre>";
$u = new User(1);
var_dump($u);
$u->usr_Nev = 'alma_'.date('YmdHis');
$u->save();
var_dump($u);
$u = new User();
$u->usr_Nev = 'korte_'.date('YmdHis');
$u->save();
var_dump($u);
-------------------------------------------------------
-------------------------------------------------------
/*DB minta*/
-------------------------------------------------------
object(User)#1 (6) {
["table"]=>
string(5) "users"
["pk"]=>
string(6) "UserID"
["varPrefix"]=>
string(4) "usr_"
["usr_Nev"]=>
string(19) "alma_20080925132327"
["usr_UserID"]=>
string(1) "1"
["dbconn:private"]=>
resource(3) of type (mysql link)
}
object(User)#1 (6) {
["table"]=>
string(5) "users"
["pk"]=>
string(6) "UserID"
["varPrefix"]=>
string(4) "usr_"
["usr_Nev"]=>
string(19) "alma_20080928211636"
["usr_UserID"]=>
string(1) "1"
["dbconn:private"]=>
resource(3) of type (mysql link)
}
object(User)#2 (6) {
["table"]=>
string(5) "users"
["pk"]=>
string(6) "UserID"
["varPrefix"]=>
string(4) "usr_"
["usr_Nev"]=>
string(20) "korte_20080928211636"
["usr_UserID"]=>
int(388)
["dbconn:private"]=>
resource(3) of type (mysql link)
}
-------------------------------------------------------
------------------------------------------------------- -
Tele von Zsinór
őstag
Mysql kapcsolódás kódolása mi? "set names 'kódolás';" queryvel tudod állítani, közvetlen a mysql_connect() mögé érdemes rakni.
Mivel nézve rosszak a karakterek: az oldaladon egy másik scripttel, vagy phpmyadminnal? Mindkét esetben ellenőrizd, hogy az oldal kódolása is 8859-2 legyen, phpmyadminban a home lapon tudod állítani. -
biker
nagyúr
pedig utf8-al járnál jobban, mert
- a windowsos gépről nem iso8859-2 hanem windos-1250 karakterek jönnek, vagy utf (browserfüggő), így ok, hogy te latin2-ként jelzed elküldéskor, de nem abban írta be.
- linux és mac userek is 99% utf8 karakterekkel írnak
- mysql-ben a text collate azt hiszem csak text mező esetén kielégítő, de nem biztos, mindenesetre az adatbázis, a tábla, és az oszlop minden szükséges helyén text collate=iso-8859-2talán segít.
esetleg táblába írás előtt alakíttasd át az ékezetes karaktereket kódokká. az aztán full kompatibilis
Új hozzászólás Aktív témák
Hirdetés
- Kecskemét és környéke adok-veszek-beszélgetek
- Házimozi belépő szinten
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Külső 3,5'' mobil rack-ek topikja
- Motorola Edge 30 Neo - wake up, Jr...
- BestBuy topik
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Xbox Series X|S
- gban: Ingyen kellene, de tegnapra
- Shield TV-t csinált a Shieldből az NVIDIA
- További aktív témák...
- iKing.Hu - Xiaomi 14 Ultra - Ultra White - Használt, karcmentes
- Kingmax 1x2GB DDR3-1333 RAM
- BESZÁMÍTÁS! MSI Z790 i5 14600KF 64GB DDR5 512GB SSD RTX 3070 8GB Rampage SHIVA Enermax 750W
- LG 45GR95QE - 45" Ívelt OLED / 2K WQHD / 240Hz 0.03ms / NVIDIA G-Sync / FreeSync Premium / HDMI 2.1
- Üzleti Fujitsu Lifebook u7510 15,6" FHD IPS 2021/08. havi gyártás
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest