Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> pytanie co do optymalizacji kodu
Mefisto_87
post 16.06.2010, 14:47:40
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

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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 05:32