Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zliczanie wykonanych zapytań.
Forum PHP.pl > Forum > PHP > Object-oriented programming
szarobury
Witam sterownik bazy danych i chciałbym wprowadzić zliczanie zapytań sql, lecz nie wiem jak, mógłbym liczyć na pomoc? smile.gif
  1. <?
  2. /*
  3. |----------------------------------------
  4. | DATABASE CLASS
  5. |----------------------------------------
  6. |
  7. */
  8.  
  9. class Database {
  10.  
  11. public $connection;
  12.  
  13. function __construct($host, $name, $pass) {
  14. $this->connection = mysql_connect($host, $name, $pass);
  15. return $this->connection;
  16. }
  17. function error($type)
  18. {
  19. $text = '<h2>MySQL Error</h2>' . "\n";
  20. switch($type)
  21. {
  22. case 'dbselect':
  23. $text .= 'An error occurred when choosing database';
  24. break;
  25.  
  26. case 'query':
  27. $text .= 'An error occurred when executing SQL queries';
  28. break;
  29.  
  30. }
  31. $text .= '!<hr>MySQL said: <i>' . mysql_error() . '</i>';
  32. die($text);
  33. } // one of the above errors appear when the parser encounters an error on its way
  34.  
  35. function select_db( $db_name) {
  36.  
  37. return mysql_select_db( $db_name) or die( $this->error('dbselect'));
  38. } // Select the database
  39.  
  40.  
  41. function query($query) {
  42. return mysql_query($query);
  43. } // SQL query execution {free queries}
  44.  
  45.  
  46. function insert( $into, $set, $free) {
  47.  
  48. return mysql_query("INSERT INTO $into SET $set $free");
  49. } // SQL query execution
  50.  
  51.  
  52. function select( $s, $from, $free='') {
  53.  
  54. return mysql_query("SELECT $s FROM $from $free");
  55. } // SQL query execution
  56.  
  57.  
  58. function update( $from, $free) {
  59.  
  60. return mysql_query("UPDATE $from SET $free");
  61. } // SQL query execution
  62.  
  63.  
  64. function delete( $from, $free) {
  65.  
  66. return mysql_query("DELETE FROM $from $free");
  67. } // SQL query execution
  68.  
  69.  
  70. function fetch_assoc( $assoc) {
  71.  
  72. return mysql_fetch_assoc( $assoc);
  73. } // download records into assoc table
  74.  
  75.  
  76. function num_rows( $num_rows) {
  77.  
  78. return mysql_num_rows( $num_rows);
  79. } // count records
  80.  
  81. function fetch_array( $array) {
  82.  
  83. return mysql_fetch_array( $array);
  84. } // download records into array table
  85.  
  86.  
  87. function __destruct() {
  88. return mysql_close($this->connection);
  89. }
  90. }
  91.  
  92.  
  93. ?>
wookieb
Tak trudno przy kazdym mysql_query dopisac inkrementowanie właściwości klasy?
szarobury
widocznie trudno, skoro nie potrafię. Proszę o szczegóły.. próbowałem już kilku sposobów, lecz zawiodły.
wookieb
To pokaż jak próbowałeś.
szarobury
tyle tych prób było, że nie pamietam. Poza tym co za różnica, skoro nie działało? Masz ochotę długo tak nabijać posty czy zechcesz pomóc?
wookieb
Mam ochotę uzmysłowić ci, że problem jest tak banalny, że nie nadaje się na temat na forum i że powinieneś wrócić do podstawowego kursu php.
szarobury
do tego forum jest. jeżeli nie znalazłem odpowiedzi w żadnym kursie, to mam schować głowę w piasek?
wookieb
Udowodnić, że coś próbowałeś. Bo tekst "Tyle tego było" do mnie nie przemawia. W dodatku nie wiem jak można zrobić "tyle" metod zwiększania licznika o 1...
szarobury
wiem, że $zmienna++; zwiększa licznik o jeden, ale jak to zaimplementować?
wookieb
http://pl.php.net/manual/pl/language.oop5.visibility.php

No brawo. Coś wiesz. Ja bym zaczął od wpisania tego w kod.
phpion
~wookieb ma rację - wygląda na to, że czekasz na to aż ktoś poda ci gotowe rozwiązanie. Otóż nie tędy droga. Ja mogę podać ci tylko podpowiedź: wprowadź nową składową klasy* (nie zwykłą zmienną), którą będziesz zwiększał o 1 przy każdym wywołaniu funkcji mysql_*. Tyle. Próbuj, a jeśli nie będzie działało to wklej kod z opisem co się dzieje.

* może warto wręcz zadeklarować ją jako statyczną - nie wiem jak używasz tej klasy.
szarobury
dalej nie rozumiem.
wookieb
To straszne.
Skoro wiesz jak zwiększyć wartość zmiennej o jeden, więc problem chyba leży gdzie indziej?
Aha pewnie nie rozumiesz...

Wiec nadal zapraszam do PODSTAWOWEGO kursu php o obiektach http://www.google.pl/#hl=pl&source=hp&...69216f04f9fdac3
szarobury
poradziłem sobie, do zamknięcia
phpion
Super, jesteś niezły, ale może wypadałoby podzielić się rozwiązaniem z innymi? Może ktoś będzie stał przed podobnym problemem, znajdzie ten wątek, ale nie znajdzie w nim rozwiązania (poza "poradziłem sobie").
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.