Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> klasy - problem
miszqa
post
Post #1





Grupa: Zarejestrowani
Postów: 168
Pomógł: 0
Dołączył: 15.01.2004
Skąd: Suwalki/Poznan

Ostrzeżenie: (10%)
X----


Witam!!!

Mam taki problem. Chcialem napisac klase odnosnie wyswietlania danych z bazy.
Ale aby niepotrzebnie nie powielac zapytan chcialbym zrobic uniwersalny wpis.

I pojawia sie porblem gdyz
odnoszac sie do klasy w sposob
  1. <?php
  2.  
  3. $sql = &#092;"select....\";
  4. klasa -> wyswietl($dbname, $dbuser, $dbpass, $dbhost, $sql);
  5.  
  6.  
  7. ?>

klasy juz nie bede opisywal
ale problem jest taki ze podajac w odnosniku do klasy zmienna $sql z zapytaniem
klasa nie chce dzialac
nie wyciaga mi danych z bazy

co moze byc przyczyna takiego stanu rzeczy?

wielkie dzieki za odpowiedz

pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
DeyV
post
Post #2





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




ehh... Przykro się czyta ten temat.
Z jednej strony jest człowiek, który nie do końca potrafi przedstawić swój problem.

Z drugiej - kilka osób, któe chcą przedstawić swoje racje, nie interesując się przedstawionym problemem.

A przecież wnieski z tego płynące - są proste.

1. w dzisiejszych czasach konieczne jest pisanie obiektowe.
2. Aby móc to robić - potrzeba poznać składnię tworzenia klas - i pamiętać o tym, że np. klasa musi mieć nazwę (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ( http://pl2.php.net/manual/pl/ref.classobj.php )
3. Nikt nie nauczy się pisać obiektowo, jeśli nie zacznie tego robić, nawet jeśli na początku powstają takie potworki. I nie można od razu zarzucać, że to lepiej byłoby zrobić strukturalnie - lepiej jest pokazać, jaką strukturę powinna mieć dana klasa.

4. Należy pamiętać, że im mniejsze, i bardziej wyspecjalizowane funkcje, tym lepiej. Szczególnie w tym przypadku, gdzie bardzo wyraznie widać fragment kodu służący do pobierania danych, fragment do wyświetlania newsów, wyświetlanie strzałek...
w skrócie - można by to zrobić np. tak (nie będę pisał całego kodu, postaram się również opierać na tym, co już napisałeś)
  1. <?php
  2.  
  3. class Sql
  4. {
  5. var $sDbName;
  6. var $sDbPass; 
  7. var $sDbUser;
  8.  
  9. var $mDbResource;
  10.  
  11. function Sql( $sDbName, $sDbUser, $sDbPass )
  12. {
  13. $this->mDbResource = mysql_connect( $sDbUser, $sDbPass );
  14. mysql_select_db( $sDbName , $this->mDbResource );
  15. }
  16.  
  17. function query( $sQuery )
  18. {
  19. return ( mysql_query( $sQuery, $this->mDbResource ) or echo 'Błąd w zapytaniu '. $sQuery );
  20. }
  21. }
  22.  
  23.  
  24. class Newsy
  25. {
  26. var $iIloscNewsow = null;
  27. var $iIleOnPage = 10;
  28. var $mQueryIdent;
  29.  
  30. function Newsy( &$Sql )
  31. {
  32. $this->Sql =& $Sql; 
  33. $this->getCount();
  34. }
  35.  
  36. function getCount()
  37. {
  38. if( isset( $this->iIloscNewsow ) )
  39. {
  40. return $this->iIloscNewsow;
  41. }
  42. $aRow = mysql_fetch_row( $this->Sql->query( 'SELECT Count(*) FROM .... ') );
  43. return $this->iIloscNewsow = $aRow[0];
  44. }
  45.  
  46. function getData( $iPageNumber=)
  47. {
  48. $this->mQueryIdent = $this->Sql->query( 'SELECT * FROM .... 
  49. LIMIT ' .( $this->iIleOnPage * $iPageNumber) .','. $this->iIleOnPage );
  50. }
  51.  
  52. function getRow()
  53. {
  54. return mysql_fetch_assoc( $this->mQueryIdent );
  55. }
  56.  
  57. function display()
  58. {
  59. echo &#092;"<table border=1 width=100%>\";
  60. while( $aWiersz = $this->getRow() )
  61. {
  62. echo '<tr><td><b><small>' . $this->cutText( $aWiersz['cos tam'], 100 ) . 
  63. '</td> </tr>' ;
  64. } 
  65. echo '</table>';
  66.  
  67. $this->displayStrzalki();
  68. }
  69.  
  70. function displayStrzalki() 
  71. {
  72. // nice name;) 
  73. }
  74.  
  75.  
  76. function cutText($tekst, $il_znakow)
  77. {
  78. if (strlen($tekst) > $il_znakow)
  79. {
  80. return substr($tekst, 0, strrpos(substr($tekst, 0, $il_znakow), &#092;" \"));
  81.  
  82. }else return $tekst;
  83. } 
  84. }
  85.  
  86. $Sql = new Sql( 'nazwa_bazy', 'user', 'haslo');
  87.  
  88. $Newsy = new Newsy( $Sql );
  89.  
  90. $Newsy->getData( (int) $_REQUEST['numer_strony'] );
  91.  
  92. $Newsy->display();
  93. ?>


Nie testowałem tego kodu, ale myślę, że dosyć dobrze przedstawia on ideę, i możliwości z niej płynące.
Go to the top of the page
+Quote Post

Posty w temacie
- miszqa   klasy - problem   1.08.2004, 17:13:29
- - rogrog   nie wiem na jakiej podstawie wogóle ludzie mają ci...   1.08.2004, 17:49:31
- - Yarecki   [PHP] pobierz, plaintext <?php// Albo wpisujesz...   1.08.2004, 18:52:37
- - miszqa   otoz chodzi o cos takiego ze odwolujac sie do kla...   2.08.2004, 02:05:16
- - zalew   brak spacji po slowie limit   2.08.2004, 02:58:15
- - miszqa   zrobilem spacje i nadal nie dziala   2.08.2004, 10:44:22
- - rogrog   a ja ci mówie żebyś sie nie upierał że chcesz mieć...   2.08.2004, 11:53:42
- - miszqa   widzisz ty nie rozumiesz problemu nawet jesli jej...   2.08.2004, 12:52:43
- - rogrog   chłopie.... nie chodzi mi o to czy ci działa czy ...   2.08.2004, 13:03:44
- - miszqa   ej a co za roznica czy napisze ta funkcje normalni...   2.08.2004, 13:13:58
- - rogrog   hehe bk.... dobra... jak nie chcesz zrozumiec że ...   2.08.2004, 13:34:52
- - miszqa   to ty tak uwazasz a ja uwazam inaczej to teraz wez...   2.08.2004, 13:38:39
- - rogrog   tu nie ma żadnej mojej klasy tylko ci pokazuje jak...   2.08.2004, 13:43:06
- - M4chu   Cytat(miszqa @ 2004-08-02 14:38:39)(...) tera...   2.08.2004, 14:07:52
- - rogrog   @M4chu: dzięki za pomocny głos, wyraziłeś to co ch...   2.08.2004, 14:22:45
- - miszqa   no dobra skoro mam miec zle nawyki to pokazcie mi ...   2.08.2004, 16:37:27
- - rogrog   nieuzasadnione używanie klas to tez zły nawyk... t...   2.08.2004, 17:08:41
- - miszqa   roqrog widzisz ty mnie nie mozesz zrozumiec i pisz...   2.08.2004, 17:21:17
- - Dabroz   Sorry ze sie wtrace, ale to co piszesz jest napisa...   2.08.2004, 22:33:57
- - M4chu   miszqa: proponuje zebys zaczal pisac jakie bledy d...   2.08.2004, 22:58:59
- - miszqa   M4chu: No wlasnie wywala mi blad wykonywania petli...   3.08.2004, 01:06:50
- - DeyV   ehh... Przykro się czyta ten temat. Z jednej stro...   3.08.2004, 10:02:45
- - miszqa   1. nareszcie ktos pomyslal i nie czepia sie po co ...   3.08.2004, 10:53:36
- - Seth   Cytat(DeyV @ 2004-08-03 10:02:45)2. Aby móc t...   6.08.2004, 22:03:48


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: 3.10.2025 - 17:22