Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/sql] klasa sql, Klasa, która łączy i pobiera dane z bazy
MaKaO
post 28.07.2004, 18:45:55
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 3.05.2003
Skąd: Głogów

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


Na wstępie chciałbym zaznaczyć, iż jestem nowicjuszem, jeżeli chodzi o programowanie obiektowe. A więc korzystając z artykułów w internecie napisałem coś takiego
  1. <?php
  2.  
  3. class sql
  4. {
  5.     var $connection;
  6.     var $result;
  7.     var $rows;
  8.  
  9.     var $queries = 0;
  10.  
  11.     function sqlConnect( $host, $user, $pass, $db )
  12.     {
  13.         $this->connection = mysql_connect( $host, $user, $pass );
  14.         mysql_select_db( $db );
  15.     }
  16.  
  17.     function sqlClose()
  18.     {
  19.         mysql_close( $this -> connection );
  20.     }
  21.  
  22.     function sqlQuery( $query )
  23.     {
  24.         $this->result = mysql_query($query);
  25.         $this->queries++;
  26.         if ( mysql_errno() != 0 )
  27.         {
  28.             die( 'Error: '.mysql_error().'<br/>' );
  29.         }
  30.         return 1;
  31.     }
  32.     function sqlFetchRow()
  33.     {
  34.         $this->rows = mysql_fetch_row( $this->result );
  35.     }
  36. }
  37.  
  38. ?>


Problem najprawdopodobniej moim zdaniem tkwi w funkcji sqlFetchRow, ponieważ nie wyświetlają mi się rekordy z bazy.

Oto kod którego użyłem do wykorzystania klasy SQL
  1. <?php
  2.  
  3. require_once( &#092;"sql.class.php\" );
  4.  
  5. $sql = new sql;
  6. $sql->sqlConnect( 'localhost', 'makao', 'password', 'database' );
  7. $sql->sqlQuery( 'SELECT * FROM table ORDER BY id DESC' );
  8. while($sql->sqlFetchRow())
  9. {
  10.     echo $sql->rows[0].' - '.$sql->rows[1].'<br/>';
  11. }
  12. $sql->sqlClose();
  13.  
  14. echo 'Ilość zapytań:'.$sql->queries;
  15.  
  16. ?>


Jest ktoś w stanie pomóc mi rozwiązać ten problem?

Pisząc ten kod starałem się dostosować do standardów kodowania php.pl.

Ten post edytował MaKaO 29.07.2004, 03:25:40
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Yarecki
post 28.07.2004, 18:54:39
Post #2





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 1.04.2004
Skąd: Gdynia

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


Jak to ma działać jeśli metody w klasie sa inne niż te których używasz w kodzie ?
np. w klasie sql masz sqlConnect, sqlClose, sqlQuery itd. a w kodzie masz sql_connect, sql_query itd.


--------------------
Nigdy nie kłóć się z głupim, ludzie mogą nie dostrzec różnicy.
Go to the top of the page
+Quote Post
MaKaO
post 29.07.2004, 03:26:27
Post #3





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 3.05.2003
Skąd: Głogów

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


Przepraszam, ale na ostatnią chwile zmieniałem kod i nie zmieniłem nazw funkcji... Kod nie działa nawet w takiej postaci...
Go to the top of the page
+Quote Post
Parti
post 29.07.2004, 07:36:05
Post #4





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 22.07.2004

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


  1. <?php
  2.  
  3. class sql{
  4. /* ... */
  5.     function sqlFetchRow()
  6.     {
  7.         $this->rows = mysql_fetch_row( $this->result );
  8.         // dodaj:
  9.         return $this->rows;
  10.     }
  11. }
  12.  
  13. // uzycie:
  14.  
  15. while ($row = $sql->sqlFetchRow())
  16.    echo $row[0].' - '.$row[1].'<br />'
  17.  
  18.  
  19. // drugi przyklad uzycia
  20. while ($sql->sqlFetchRow())
  21.    echo $sql->rows[0].' - '.$sql->rows[1].'<br />';
  22.  
  23. ?>


Ten post edytował Parti 29.07.2004, 07:39:18
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 - 22:03