Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [OOP / MYSQL]
Forum PHP.pl > Forum > Przedszkole
Neeke
witam otuz napisalem soobie klase sql wykonuje polaczenie i w zaleznosci co wybiore za opcje to dodajje do bazy pobiera itd...
problem w tym ze jak pobieram dane z bazy i chce je wzucic do tablic w taki sposób :
  1. <?php
  2. while($row=mysql_fetch_array($b->type_sql())){....}
  3. ?>

to pobiera ale wyswietla nieskonczona ilosc razy czyli umnie na serwie to przez 30 sekund
w czym robie blad?
prosze o wyrozumialosc to jest moja pierwsza kalsa jaka stworzylem.
A z OOP jestem od wczoraj wieczora.

plik ktory aktywuje klase wyglada tak :
  1. <?php
  2. // PLIK Z KONFIGURACJA
  3. $db_config['host'] = 'localhost';
  4. $db_config['user'] = 'root';
  5. $db_config['pass'] = 'vertrigo';
  6. $db_config['dbname'] = 'nfoota';
  7. $db_config['port'] = '3306';
  8.  
  9. include_once('sql_class.php');
  10. /*
  11. $a = new sql;
  12. $a->db_config = $db_config;
  13. $a->type = 'insert into';
  14. $a->table = 'konta';
  15. $a->mod = "(login , haslo)";
  16. $a->where = "VALUES( 'neeke','neeke')";
  17. $a->type_sql();
  18. */
  19. $b = new sql;
  20. $b->db_config = $db_config;
  21. $b->type = 'SELECT';
  22. $b->table = "konta";
  23. $b->from = 'haslo , login FROM';
  24. $b->where = 'WHERE login="admin" LIMIT 1';
  25.  
  26. while($row = mysql_fetch_array($b->type_sql())){
  27. echo'<pre>';
  28. echo $row['login'];
  29. echo $row['haslo'];
  30. echo'</pre>';
  31. }
  32. ?>


a plik z klasa wyglada tak:
  1. <?php
  2. class sql {
  3.  
  4.  var $db_config;
  5.  var $type;
  6.  var $table;
  7.  var $where;
  8.  var $from = '';
  9.  var $mod = '';
  10.  
  11.  function connection(){
  12.  
  13. if (!empty($this->db_config['pass'])) {
  14.  $connect = mysql_connect($this->db_config['host'].':'.$this->db_config['port'], $this->db_config['user'], $this->db_config['pass'])
  15. or die('ERROR: Niemozna polaczyc sie z baza '. mysql_error().'<br />'.$connect);
  16.  $db_select = mysql_select_db($this->db_config['dbname'])
  17. or die('ERROR: niemozna wybrac bazy danych '.mysql_error().'<br />'. $db_select);
  18. }
  19.  }
  20.  
  21.  function type_sql(){
  22. $this->connection();
  23. $sql = $this->type.' '.$this->from.' '.$this->table.' '.$this->mod.' '.$this->where;
  24. $result = mysql_query($sql)
  25.  or die('ERROR: nie można wykonać zapytania: <br />'.mysql_error().'<br />'.$sql);
  26.  
  27. if($result==true){
  28.  
  29.  return $result; 
  30.  
  31. }
  32. $this->disconnect($connect);
  33.  } 
  34.  
  35.  function disconnect($connect){
  36. mysql_close($connect);
  37. echo'polaczenie zamkniete';
  38.  }
  39.  
  40. }
  41. ?>


z góry dzieki za pomoc.
nospor
  1. <?php
  2. while($row = mysql_fetch_array($b->type_sql())){
  3. ?>
Przeciez ty za każdym razem tutaj wykonujesz na nowo zapytanie i ono za kazdym razem zwraca ci nowy resource wiec dlatego masz to w nieskonczonosc. Iterowac powinienes po jednym resource. Czyli raz wykonujesz zapytanie i iterujesz po jego wyniku.
Neeke
dzieki nospor niepomyslalem ze to zakazdym razem wywoluje petle jeszcze raz dzieki
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.