Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Klasa i wyświetlenie danych
pjamorski
post 29.06.2010, 06:38:39
Post #1





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


Witam.
Napisałem sobie klasę. Poniżej przedstawię funkcję ktora ma pobrać dane i przekazać je w odpowiednie miejsce i wyświetlić:

  1. var $nick;
  2. var $passwd;
  3. var $role;
  4. function Set_nick($nickname)
  5. {
  6. $this->nick = $nickname;
  7. }
  8. function Get_nick()
  9. {
  10. return $this->nick;
  11. }
  12. function Set_password($password)
  13. {
  14. $this->passwd = $password;
  15. }
  16. function Get_password()
  17. {
  18. return $this->passwd;
  19. }
  20.  
  21. var $row;
  22.  
  23. class MySQL_class
  24. {
  25. function Display_users()
  26. {
  27. require_once("globals.php");
  28. $this->server = DB_SERVER;
  29. $this->username = DB_USER;
  30. $this->password = DB_PASS;
  31. $this->db_name = DB_NAME;
  32. $this->db_connection = mysql_connect($this->server, $this->username, $this->password) or die("Connection failed. Error: " . mysql_error());
  33. $this->db = mysql_select_db(DB_NAME,$this->db_connection) or die("Database selection failed. Error " . mysql_error());
  34.  
  35. $querry = "SELECT nick, passwd FROM users";
  36. $equal = mysql_query($querry) or die("Error DB querry. Error: " . mysql_error());
  37.  
  38. while($this->row = mysql_fetch_array($equal))
  39. {
  40. $nick[] = $this->row['nick'];
  41. $passwd[] = $this->row['passwd'];
  42.  
  43. /*
  44. $this->Set_nick($this->row['nick']);
  45. $this->Set_password($this->row['passwd']);
  46. */
  47. $this->counter++;
  48. }
  49. for ($i = 0; $i < $this->counter; $i++)
  50. {
  51. $this->Set_nick($nick[$i]);
  52. $this->Set_password($passwd[$i]);
  53. return true;
  54. }
  55. return false;
  56. }
  57. }


Dane próbuję przekazać w ten sposób, ale wyświetlana jest tylko ostatnia osoba n razy.
Dzięki za pomoc


--------------------


Chęci to nie wszystko, trzeba działać.
B. Lee

Go to the top of the page
+Quote Post
nospor
post 29.06.2010, 07:10:47
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przeciez Set_nick() za kazdym razem zapisuje do tej samej jednej zmiennej. Kazde wywolanie Set_nick nadpisuje poprzednią wartość


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pjamorski
post 29.06.2010, 08:07:36
Post #3





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


Zgadza się, to czego mogęu użyć. Tablic?questionmark.gif


--------------------


Chęci to nie wszystko, trzeba działać.
B. Lee

Go to the top of the page
+Quote Post
nospor
post 29.06.2010, 08:10:32
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Teoretycznie tak.
W praktyce pewnie też smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pjamorski
post 29.06.2010, 08:20:45
Post #5





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


Kurcze zrobiułem tak:

  1. function Login()
  2. {
  3. require_once("globals.php");
  4. $this->server = DB_SERVER;
  5. $this->username = DB_USER;
  6. $this->password = DB_PASS;
  7. $this->db_name = DB_NAME;
  8. $this->db_connection = mysql_connect($this->server, $this->username, $this->password) or die("Connection failed. Error: " . mysql_error());
  9. $this->db = mysql_select_db(DB_NAME,$this->db_connection) or die("Database selection failed. Error " . mysql_error());
  10.  
  11. $nick = $this->nick;
  12. $haslo = $this->passwd;
  13. $haslo_crypt=crypt($this->passwd,'bab');
  14. $querry = "SELECT nick, passwd, role FROM users WHERE nick='$nick' AND passwd='$haslo_crypt'";
  15. $result = mysql_query($querry) or die("Error DB querry. Error: " . mysql_error());
  16. while ($this->row = mysql_fetch_array($result))
  17. {
  18. $this->r[] = $this->row['role'];
  19. $this->n[] = $this->row['nick'];
  20. $this->p[] = $this->row['passwd'];
  21. $this->counter++;
  22. }
  23. if ($nick && $haslo)
  24. {
  25. for ($i = 0; $i < $this->counter; $i++)
  26. {
  27. $this->Set_role($this->r[$i]);
  28. $this->Set_nick($this->n[$i]);
  29. $this->Set_password($this->p[$i]);
  30. return true;
  31. }
  32. }
  33. else
  34. {
  35. echo 'There is a problem with login In, please contact to administrator: pjamorski@interia.pl';
  36. }
  37. return false;
  38. }


i chcę wyświetlić, niestety nie w dalszym ciągu nie mogę:

  1. <?php
  2. require_once('sql_class.php');
  3. $object = new MySQL_class();
  4. for($i=0;$i<=$object->counter;$i++)
  5. {
  6. echo $object->n[$i];
  7. } ?>


--------------------


Chęci to nie wszystko, trzeba działać.
B. Lee

Go to the top of the page
+Quote Post
nospor
post 29.06.2010, 08:34:57
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




przeciez funkcja Set_nick nadal robi to samo... to ją miałeś zmienić a nie jej wywołania.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pjamorski
post 29.06.2010, 08:47:26
Post #7





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


czyli?questionmark.gif


--------------------


Chęci to nie wszystko, trzeba działać.
B. Lee

Go to the top of the page
+Quote Post
skowron-line
post 29.06.2010, 08:57:45
Post #8





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


  1. function Set_nick($nickname)
  2. {
  3. $this->nick = $nickname; // <--- Tu miałeś zrobić tablicę.
  4. }


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
pjamorski
post 29.06.2010, 09:10:33
Post #9





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


To przyszło mi do głowy:

  1. var $nick = array();
  2. function Set_nick($nickname)
  3. {
  4. for($i=0;$i<=$this->counter;$i++)
  5. {
  6. $this->nick[$i] = $nickname[$i];
  7. }
  8. }


Niestety dalej bez pozytywnej reakcji. Nie mogę zaskoczyć. Nie zajmuję się PHP, proszę brać to pod uwagę.


--------------------


Chęci to nie wszystko, trzeba działać.
B. Lee

Go to the top of the page
+Quote Post
nospor
post 29.06.2010, 09:13:24
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




skoro przekarzesz tablice to wystarczy:
$this->nick = $nickname;
bez zadnej petli


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
skowron-line
post 29.06.2010, 09:13:41
Post #11





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


  1. function Set_nick($nickname)
  2. {
  3. $this->nick[] = $nickname; // <--- Tu miałeś zrobić tablicę.
  4. }


W taki sposób przy każdym wywołaniu metody Set_nick nowy nick będzie przypisany do tablicy.


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
pjamorski
post 29.06.2010, 09:16:50
Post #12





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


deklaracja ma być taka:

  1. var $nick;


czy

  1. var $nick = array();


?
Błędów php nie mam ale teraz mi wywala mój komunikat że logowanie nie jest możliwe.



Ten post edytował pjamorski 29.06.2010, 09:18:46


--------------------


Chęci to nie wszystko, trzeba działać.
B. Lee

Go to the top of the page
+Quote Post
skowron-line
post 29.06.2010, 09:18:13
Post #13





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Cytat(pjamorski @ 29.06.2010, 09:16:50 ) *
deklaracja ma być taka:

  1. var $nick;


czy

  1. var $nick = array();


?

No sam zgadnij skoro ta zmienna ma być tablicą questionmark.gif


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 29.06.2025 - 07:02