Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Jak najlepiej stworzyć tablice z danymi z bazy.
Forum PHP.pl > Forum > Przedszkole
kukix
Witam.
Mam liste działów. wyświetlona tabelka posiada następujące pozycje:

ID_DZIAŁU | NAZWA_DZIALU | ID_KATEGORI

teraz chcialem na tej wyświetlanej liście podmienić id_kategorii na odpowiednią nazwe z innej tabeli w bazie danych.


Przygotowałem kod, który wyświetla wszystkie kategorie i zapisuje je w tablicy.
  1. <?php
  2. $result_kategorie = sql("SELECT * FROM kategorie ORDER BY id ASC;");
  3. while ($row_kategorie = mysql_fetch_assoc($result_kategorie)) {
  4. $kategorie_array[$row_kategorie['id']] = $row_kategorie['nazwa'];
  5. }
  6. ?>



następnie podczas wyświetlania działów w miejscu gdzie mam ID_KATEGORII wstawiam:

  1. <?php
  2. $kategorie_array[ID_KATEGORII]
  3. ?>

Ten kawalek kodu "zamienia" mi moje id na nazwe kategorii

Chcialem się teraz zapytac, czy ten pierwszy kod który podalem jest dobrze zrobiony.
Z tego co wiem, to zapytanie z bazy danych zapisywane jest w tablicy.. i zastanawiam sie, czy jest sens robić z tego jeszcze jedną tablice.
Czy jest sposób, żeby osiągnąć mój cel w inny "wydajniejszy" sposób?

Bede bardzo wdzieczny za wszelkie wypowiedzi.
nowotny
A ja zadam inne pytanie: w jakim celu chcesz sobie utrudnić życie zamieniając id na nazwę...?
kukix
Cytat(nowotny @ 26.07.2008, 17:19:33 ) *
A ja zadam inne pytanie: w jakim celu chcesz sobie utrudnić życie zamieniając id na nazwę...?

Ponieważ na liście potrzebujue wyświetlić nazwe kategorii a w tabeli z działami przetrzymuje tylko id tej kategorii

--- EDIT -----
wiem ,że możnaby zrobić zapytanie wybierające dane z tabeli z dzialmi i kategoriami, ale takei rozwiązniae wykorzystuje w wielu miejscach, czasami są to bardzo zlożone zapytania i nie chcialbym dokladac jeszcze tego elementu.
rybik
stwórz metodę get_catname($id) wykonującą jedno zapytanie, na wiekszości serwerów zapytania są cacheowane ale możesz dopisać własne cache'owanie jesli chcez zminnimalizować ilosc zapytan, od biedy możesz zrobic metode tworzącą jakąś globalną tablicę id->nazwa i korzystać z niej
JoShiMa
Cytat(kukix @ 26.07.2008, 17:11:45 ) *
Witam.
Mam liste działów. wyświetlona tabelka posiada następujące pozycje:

ID_DZIAŁU | NAZWA_DZIALU | ID_KATEGORI

teraz chcialem na tej wyświetlanej liście podmienić id_kategorii na odpowiednią nazwe z innej tabeli w bazie danych.

Czyli zwykły JOIN o ile dobrze zrozumiałam (nazwę tej drugiej tabeli rzecz jasna wymyśliłam)
  1. <?php
  2. $result_kategorie = sql("SELECT d.*, k.nazwa FROM dział d LEFT OUTER JOIN kategorie k ON k.ID_KATEGO
    RI = d.ID_KATEGORI ORDER BY id ASC;"
    );
  3. ?>


Dalej to już normalnie Postępujesz jak z wynikiem dowolnego zapytania.
Ociu
PHP -> Przedszkole.
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.