Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> klasa do mysql
piwoszeq
post
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 13.01.2005
Skąd: warszawa

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


  1. <?php
  2. /* Do obsługi mysql :) */
  3. class DbManager
  4. {
  5. /* Zmienne */
  6. private $connectDb;
  7. private $disconnectDb;
  8. public $sql;
  9. public $countQuery = 0;
  10.  
  11. /* Konstruktor całej klasy */
  12. public function __construct()
  13. {
  14. $this->isConnectDb();
  15. }
  16. /* Łączenie z bazą */
  17. private function isConnectDb()
  18. {
  19. $this->connectDb = @mysql_connect(DB_SERWER, DB_USERNAME, DB_PASSWORD);
  20. @mysql_select_db(DB_DATABASE);
  21. return $this->connectDb;
  22. }
  23. /* Do zadawania pytań :) (liczy ile ich jest :)) */
  24. public function query($strQuery)
  25. {
  26. $this->sql = mysql_query($strQuery);
  27. $this->countQuery++;
  28. return $this->sql;
  29. }
  30. /* Wyciąga z bazy Wiersze */
  31. public function getRows($arrRows)
  32. {
  33. $this->getRows = explode (",", $arrRows);
  34. for ($i = 0; $i <= count($this->getRows); $i++)
  35. {
  36. while ($row = mysql_fetch_array($this->sql))
  37. {
  38. echo "$row[$i], $row[$i]<br>";
  39. }
  40. }
  41. }
  42. /* Kończy połączenie z baza */
  43. public function CloseDb()
  44. {
  45. $this->disconnectDb = mysql_close($this->connectDb);
  46. }
  47. }
  48. ?>


Chcialbym aby funkcja getRows odbierała wszystkie wyniki z zapytania do bazy, ale jakos nigdy mi to poprawnie nie wychodzilo sad.gif
Moze jakies sugestie ?smile.gif

go up!

Ten post edytował piwoszeq 23.10.2006, 20:30:41
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




mysql_fetch_array" title="Zobacz w manualu php" target="_manual, mysql_fetch_assoc" title="Zobacz w manualu php" target="_manual


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
piwoszeq
post
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 13.01.2005
Skąd: warszawa

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


  1. <?php
  2. /* Wyciąga z bazy Wiersze */
  3. public function getRows($arrRows)
  4. {
  5. $this->getRows = explode (",", $arrRows);
  6. for ($i = 0; $i <= count($this->getRows); $i++)
  7. {
  8. while ($row = mysql_fetch_array($this->sql))
  9. {
  10. echo "$row[$i], $row[$i]<br>"; // tutaj nie mam pojecia co dalej zrobic :(
  11. }
  12. }
  13. }
  14. ?>


uzywam tego
  1. <?php
  2. $baza->query('SELECT name, category_id FROM category ORDER BY name ASC');
  3. $baza->getRows("name, category_id");
  4. ?>


czyli takie tabele jakie mam w selekcie
i mam problem aby przekazac te info do smary sad.gif
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
  1. <?php
  2. echo "$row[$i], $row[$i]<br>"; // tutaj nie mam pojecia co dalej zrobic :(
  3. ?>

Zamiast echo daj instrukcje do przypisywania zmiennych w Smartach.

edit: @mike_mech

Sorry, ale zmyliła mnie ta linijka z echo.

Napiszę jednak to, co miałem wcześniej biggrin.gif

  1. <?php
  2. public function getRows($arrRows)
  3. ?>

  1. <?php
  2. $baza->getRows("name, category_id");
  3. ?>

Nie przypisujesz wyniku do zmiennej, a tak nawiasem, to funkcja niczego nie zwraca.

Ten post edytował erix 19.10.2006, 16:38:09


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
mike
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(erix @ 19.10.2006, 17:03:23 ) *
Zamiast echo daj instrukcje do przypisywania zmiennych w Smartach.

A po co?
Piszesz jakbyś nie miał pojęcia o czym dyskusja, co dziwne bo już się udzielales wyżej w wątku.
Go to the top of the page
+Quote Post
piwoszeq
post
Post #6





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 13.01.2005
Skąd: warszawa

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


napisze co ta funkcja ma robic smile.gif
odbierac wyniki z zapytania i przekazywac go do smarty tongue.gif
nie mam pojecia zbytnio jak to zrobic sad.gif
Go to the top of the page
+Quote Post
erix
post
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
  1. <?php
  2. $baza->getRows("name, category_id");
  3. ?>

  1. <?php
  2. $this->getRows = explode (",", $arrRows);
  3. ?>

Nie wstawiaj spacji w parametrze getRows, bo eksplodujesz przez sam przecinek.

Ja bym proponował zrobić coś takiego (ostrzegam, przy większych danych będą działy się jaja):

  1. <?php
  2. public function getRows($arrRows){
  3. if(!$this->sql){
  4. return false;
  5. }
  6.  
  7. $arr = array();
  8.  
  9. while ($row = mysql_fetch_assoc($this->sql)){
  10. $arr[] = $row;
  11. }
  12.  
  13. mysql_free_result($this->sql);
  14.  
  15. return $arr;
  16. }
  17. ?>


Wywołaj to np. tak:
  1. <?php
  2. $baza->query('SELECT name, category_id FROM category ORDER BY name ASC');
  3. $dane = $baza->getRows();
  4.  
  5. if($dane!=false){
  6. $smarty->assign(/*...*/); //zaleznie od struktury szablonu
  7. }
  8. ?>


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
piwoszeq
post
Post #8





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 13.01.2005
Skąd: warszawa

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


twoj tok rozumowania jest inny od mojego smile.gif
mam 2 tabele id oraz id2

i jak zrobie jak ty mi powiedziales to niezly bajzel sie robi i nie wiadomo jak to odczytac

chce aby robil tablice z nazwa tabeli bylo by prosciej ?
czyli moj sposob jest dobry ;DDDD

edit: oczywiscie nie wiem ile bedzie tabeli, nie wiem jak to inaczej wyrazic

Ten post edytował piwoszeq 19.10.2006, 20:22:52
Go to the top of the page
+Quote Post
erix
post
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
mam 2 tabele id oraz id2

W zapytaniu widzę tylko jedną.

Cytat
i jak zrobie jak ty mi powiedziales to niezly bajzel sie robi i nie wiadomo jak to odczytac

Przecież wszystko w tablicy $dane siedzi :/
/przynajmniej powinno


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
piwoszeq
post
Post #10





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 13.01.2005
Skąd: warszawa

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


hmmm
nie tabele lecz kolumny smile.gif

teraz jest bajzel wsio z tabel jest w jednej tablicy a chce aby bylo w tylu tablicach ile jest kolumn i kazda tablica nazwyala sie jak kolumna oraz zawierala tam dane z tej kolumny.

inaczej chyba nie umiem wytlumaczyc.
Go to the top of the page
+Quote Post
erix
post
Post #11





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
nie tabele lecz kolumny

Cytat
kazda tablica nazwyala sie jak kolumna oraz zawierala tam dane z tej kolumny.

Tak ciężko było to z siebie wydukać?

  1. <?php
  2. if($dane!=false){
  3. $c = count($dane);
  4.  
  5. for($a=0;$a<$c;$a++){
  6. foreach($dane[$a] as $k=>$v){
  7. ${$k}[] = $v;
  8. }
  9. }
  10. }
  11. ?>

Powstaną wówczas dwie tablice o nazwach kolumn.
Pisane z palca.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
piwoszeq
post
Post #12





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 13.01.2005
Skąd: warszawa

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


  1. <?php
  2. public function getRows($arrRows)
  3. {
  4. $this->getRows = explode (",", $arrRows);
  5. $dane = $this->getRows;
  6. $c = count($dane);
  7. while ($row = mysql_fetch_array($this->sql))
  8. {
  9. for($a=0;$a<$c;$a++)
  10. {
  11. echo $row[$a];
  12. }
  13. }
  14. }
  15. ?>


stanelo na czyms takim, dziala prawidlowo, ale smile.gif

jak przekazac to wsio do smarty ?
bo jak biore
  1. <?php
  2. $smarty->assign('title', $baza->row['1']);
  3. ?>

to niestety nie dziala sad.gif

go up!
pomoze ktos ?smile.gif

moze ktos juz cos wie ?snitch.gif

Ten post edytował piwoszeq 23.10.2006, 20:29:59
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 Aktualny czas: 21.08.2025 - 20:43