Hirdetés
- Yettel topik
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- iPhone topik
- Samsung Galaxy S26 Ultra - fontossági sorrend
- MWC 2026: Bajnoki címre pályázik a Xiaomi Watch 5
- Google Pixel 10 Pro XL – tíz kicsi Pixel
- Google Pixel topik
- Nemzetközi vizekre evezett a Realme GT 7 és GT 7T
- Külföldi prepaid SIM-ek itthon
- Samsung Galaxy A52s 5G - jó S-tehetség
Ú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.
-
xTc
aktív tag
-
xTc
aktív tag
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
- Újszerű SteelSeries Arctis 7 2019 Edition Wireless Bolti ár:55k INGYEN FOXPOST
- Garmin Forerunner 970 Bontatlan
- CoreI5,13600KF,14/20/GIGABYTE,B760M-DS3H,KINGSTON,DDR4 32GB,RTX5060TI 16GB/2Tb T.hely/GARI/Win11!
- Web automatizálás és automatizált tesztelés - spórolj napi több órát
- Bérelhető csúcskategóriás PC RTX 5090-vel - Ryzen 7/9, DDR5 ram
- Lenovo 13w Yoga 2in1 Gen 2 AMD Ryzen 3 7330U 8 GB RAM 256 GB SSD Premium garancia FHD IPS TOUCH
- 279 - Lenovo Legion Pro 5 (16IAX10H) - Intel Core U9 275HX, RTX 5070Ti
- Sudokoo NEXAURA 360 Liquid Cooler, 360mm vízhűtés!
- AKCIÓ! ASRock B450M R5 5500 16GB DDR4 512GB SSD RTX 2060 6GB Zalman T3 Plus ADATA 600W
- Telefon felváráslás!! Samsung Galaxy A17/Samsung Galaxy A27/Samsung Galaxy A37/Samsung Galaxy A57
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


