Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcja do pobierania danych z bazy
Forum PHP.pl > Forum > PHP
MalyKazio
Witam.

Przerabiam swoją stronę. Do tej pory wszędzie gdzie mi były potrzebne dane z tabeli pobierałem je osobno. W tej chwili tworzę funkcję, która pobiera mi wszystkie dane z bazy, zapisuje w tablicy o określonych indeksach. W ten sposób mam jednolitą strukturę danych, do których w każdym miejscu będę mógł się odwołać przy pomocy tego samego indeksu w tablic. To wszystko jest oczywiste. Moje pytanie zmierza jednak do czegoś innego. Dane w tablicy w dużej części są danymi liczbowymi (INT). W zależności od wartości liczbowej przypisywana jest im odpowiednia wartość tekstowa. Czy w związku z tym lepiej byłoby aby funkcja zwracała w tablicy dane liczbowe, czy też dobrze jest w niej umieścić dane gotowe do wyświetlenia, przetworzone przez odpowiednią, osobą funkcję, która jest wywoływana w tej chwil przez wyświetleniem danych. Z jednej strony nie będę musiał martwić się czy przed wyświetleniem danych nie zapomnę ich odpowiednio obrobić i mogę wyświetlić je prosto np. $dane['kategoria']. Z drugiej jednak trochę rozrośnie się przez to zwracana tablica. Czy mógłby ktoś podzielić się swoimi uwagami?
danek
Nie wiem, czy dobrze zrozumiałem, ale do łączenia danych (np id-kategorii->nazwy-kategorii) używa się relacji...
MalyKazio
Nie o to chodzi.
Kategorie to był przykład. Mam wiele bardziej skomplikowanych rzeczy, np. organizacje. jakiś człowiek X należy do organizacji o nr 4. Tak więc przy wyciąganiu danych człowieka pobieram pole "organizacja" o wartosci 4. Następnie przed wyświetleniem danych tego człowieka przetwarzam to pole organizacja funkcją przygotujorganizacje(organizacja), która do nr 4 dobiera odpowiednią nazwę. Teraz nie wiem, czy w funkcji pobierającej dane osoby zostawić tylko w tablicy wynikowej "organizacja" (tu o wartosci 4) i potem przed wyswietleniem przetworzyć fukncją przygotujorganizacje czy też dodać dodatkowo organizacjanazwa=przygotujorganizacje(organizacja) i potem tylko prosto wyświetlić pole organizacjanazwa. Ufff... chyba jakoś to wyjaśniłem
danek
OK, ale skoro pobierasz to z bazy to czemu nie zastosujesz relacji?
Proszę:
Masz 2 tabele: organizacja i uzytkownicy


Piszesz prosta relacje w SQL-u i masz od razu połączone dane
MalyKazio
Jasne, to nie jest problemem. Wyciągnięcie danych to błahostka. Tylko nazwa organizacji może być w kilku językach. Poza tym dla jednej osoby jest kilkanaście takich pól, stąd też wolałem wyciągnąć liczbę odpowiadającą np. organizacji i potem ją odpowiednio przetworzyć, tym bardziej, że nie wszystko jest w bazie danych i np. nazwy pól innych niż organizacją są zapisane w zmiennych np. płeć.
Stąd też nie wiem czy zrobić to tak:
  1. <?php
  2. function pobierzdaneosoby($id) {
  3. // rozne dane z bazy
  4. $p['organizacja']=$row['organizacja'];
  5. $p['organizacjanazwa']=przygotujorganizacje($row['organizacja'],array('full'=>1));
  6. $p['organizacjaskrot']=przygotujorganizacje($row['organizacja'],0);
  7. // itp. itd.
  8. return $p;
  9. }
  10. $osoba=pobierzdaneosoby($id);
  11. echo "Dane osoby (organizacja: $p['organizacjanazwa'])";
  12. ?>


Czy też tak:

  1. <?php
  2. function pobierzdaneosoby($id) {
  3. // rozne dane z bazy
  4. $p['organizacja']=$row['organizacja'];
  5. // itp. itd.
  6. return $p;
  7. }
  8. $osoba=pobierzdaneosoby($id);
  9. echo "Dane osoby (organizacja: przygotujorganizacje($osoba['organizacja'],array('full'=>1));)";
  10. ?>
danek
Co za pytanie... Rób jak Ci wygodniej, chociaż ja i tak bym to oparł na relacjach...
MalyKazio
Dzięki. Jednak trochę skorzystam. Będzie i znacznie więcej relacji niż dotychczas.
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.