Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
otóż tak, klasa obsługi usera:
<?php //klasa USERS require_once('config.php'); class user { var $uid; var $number; var $pass; var $info; var $nick; var $userRow; function user() { global $db; $this->$uid = 0; } function showUid() { return $this->$uid; } function showNumber() { return $this->$number; } function showPass() { return $this->$pass; } function showInfo() { return $this->$info; } function showNick() { return $this->$nick; } function getUser($id) { global $db; $this->$uid = $id; $this->$userRow = $db->GetAll("SELECT * FROM users WHERE uid=".$this->$uid.""); $this->$number = $this->$userRow['number']; $this->$pass = $this->$userRow['pass']; $this->$info = $this->$userRow['info']; $this->$nick = $this->$userRow['nick']; } function setNumber($n) { $this->$number = $n; } function setPass($p) { $this->$pass = $p; } function setInfo($i) { $this->$info = $i; } function setNick($ni) { $this->$nick = $ni; } function addUser() { $db->Execute("INSERT INTO users(number, pass, info, nick) VALUES('".$this->$number."', '".$this->$pass."', '".$this->$info."', '".$this->$nick."')"); } function updateUser() { global $db; if($this->$uid > 0) { $db->Execute("UPDATE users SET number='".$this->$number."', pass='".$this->$pass."', info='".$this->$info."', nick='".$this->$nick."' WHERE uid='".$this->$uid."'"); } } } class users { var $tabelka; function users() { global $db; $this->$tabelka = $db->GetAll("SELECT * FROM users"); } function getUsers() { return $this->$tabelka; } } ?>
i plik, który powinien z tą klasą współgrać (edycja usera)....
<?php require_once('config.php'); require_once('includes/class.users.php'); $uid = $_REQUEST['uid']; $user = new user; $user->getUser($uid); /***** **** *** ** * TUTAJ WYDAJE MI SIĘ, że nie gra coś, bo echo $user->showNick; nic nie wyświetla... /******** if(isset($_REQUEST['number'])) { $smarty->assign('show_form', FALSE); $number = $_REQUEST['number']; $pass = $_REQUEST['pass']; $info = $_REQUEST['info']; $nick = $_REQUEST['nick']; $user->setNumber($number); $user->setPass($pass); $user->setInfo($info); $user->setNick($nick); $user->updateUser(); $smarty->assign('zedytowano', TRUE); } else { $smarty->assign('show_form', TRUE); $smarty->assign('uid', $uid); $smarty->assign('number', $user->showNumber()); $smarty->assign('pass', $user->showPass()); $smarty->assign('info', $user->showInfo()); $smarty->assign('nick', $user->showNick()); } $smarty->display('admin_users_edit.tpl'); ?>
Otóż zupełnie mi nie pasuje, bo wartości uzyskiwane przez showNumber/Nick/itd. są puste...
wyjaśnienie - $db - to obiekt ADOdb ładnie GetAll pokazuje nam associative array danych wyciągniętych z mySQL'a.
Offline
A nie masz przypadkiem za duzo o '$' ? Daj zamiast np.
$this->$uid
cos takiego:
$this->uid
Offline
dzięki... pomogło.
Ale kurczę - ie wpadłbym na to, bo klasa users działała doskonale.
DO tego musiałem poprawić kilka błędów mniejszych w innym pliku, ale to nie było głównym powodem niejasności w dizałaniu,
Dzieki wielkie raz jescze. Od 5 godzin nad tym siedzę...
Offline
Od 5 godzin nad tym siedzę...
Wystarczyło zajrzeć do dokumentacji. Ciekawe, że programujesz w języku nie znając jego składni.
Offline
wiesz.. sęk w tym, że właśnie czytałem dokumentację i nie zauważyłem tego, bo gdzieś kiedyś widziałem $this->$zmienna i stąd taki mój zapis...
Cóż co do składni - nie zawsze się ją zna jak się kodzi.
Offline
Cóż co do składni - nie zawsze się ją zna jak się kodzi.
To ciekawe ;] Czyli w sumie mógłbyś programować w jakimkolwiek języku, bo nie musisz znać składni. Zdolniacha ;]
Offline
nie, wcale nie powiedziałem, że potrafię/mógłbym/można w ten sposób programowac w każdym języku.
nie zawsze pamiętasz dokłądnie jak coś zrobić. Czytałem manuala i po prostu umknęło mi, że tam nie ma znaku $. A co do znajomości składni - od czasu do czasu napiszę coś w cpp, to wcale nie znaczy, że się nie mylę przy pisaniu. Uważam, że najlepiej się uczyć pisząc coś. Samo kucie manuala na pamięć by mi nic nie dało. A że się pomyliłem tutaj - cóż, dla jednych to oczywista wpadka. Pewnie zorientowałbym się o co chodzi, gdyby php wywalał się na takiej linijce, ale to działało prawie dobrze...
Problem rozwiązany. Temat można zamknąć...
Offline
Strony: 1