Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> pytanie co do optymalizacji kodu
Mefisto_87
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 24.11.2008

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


Witam stworzyłem sobie klase dla obiektu i w funkcji __construct chciałbym pobrać różne przedmioty gracza(ekwipunek,mikstury,zwoje etc). Przedmioty te, rzecz jasna znajdują się w osobnych tabelach w bazie i mają różne nazwy pól. Chciałem stworzyć jedną tylko metodę get_item() dla klasy sklepu, która pobierałaby wszystkie dostępne itemki i wrzucała by je do jednej tablicy $I. Może przedstawię to na przykładowym kodzie.

Tak mógłbym uzyskać to w standardowy sposób
  1. /*
  2. $tab - tablica w bazie
  3. $type - typ broni,mikstury etc
  4. $status - status itemka
  5. $id - id gracza/sklepu
  6. $iowner - przedmiot znajduje sie albo u gracza(person) lub w sklepie(shop)
  7. */
  8. function get_item($tab,$type,$status,$id,$iowner){
  9. $_item=mysql_query("SELECT * FROM `".$tab."` WHERE `status`='".$status."' AND `type`='".$type."' AND `owner`=".$id);
  10. if(mysql_num_rows($_item)>0){
  11. while($item=mysql_fetch_assoc($_item)){
  12. $this->I[$iowner][$tab][$type]=array('nazwa'=>$item['x'],'waga'=>$item['y'],'moc'=>$item['z']);
  13. }
  14. /*Ja chciałbym zamiast while od razu dać coś podobnego do
  15.   $this->I[$iowner][$tab][$type]= i tu wszystkie dane dla danych itemków
  16.   */
  17. }
  18. }


Niestety powyższy sposób zmusiłby mnie to napisania osobnych funkcji pobierania dla każdej tabeli w bazie, ponieważ mają one różną ilość pól i różne nazwy. Czy jest jakiś sposób, by to ominąć i pobrać jakoś inaczej (nie za pomocą while)wszystkie dane z tabeli?




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





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Co do problemu z pobieraniem danych z kilku tabel: zainteresuj się UNION.
Co do problemu z nazwami kolumn: mysql_fetch_row (aczkolwiek korzystając z UNION wszystkie kolumny z różnych tabel będą miały takie same nazwy).

Ten post edytował phpion 17.06.2010, 10:02:37
Go to the top of the page
+Quote Post

Posty w temacie


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: 9.10.2025 - 14:50