Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Piktogramy i ich rozwiazanie
podziak
post
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 10.09.2005

Ostrzeżenie: (20%)
X----


Witam!!!

Problem jest natury takiej.

Otoz mam opisy pewnych firmy i powiedzmy 12 piktogramow oznaczajacych opcje.

1. Teraz jest cos takiego.
Wpisuje firme i firma ma np 6 piktogramow
Inna firma ma 8 piktogramow

Teraz chodzi o cos takiego:
a) Czy zrobic jeden rekord na pole w bazie danych... jesli tak to jak zapisywac piktogramy (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) Czy stworzyc wiele rekordow dla kazdego piktogramu i sprawdzac funkcja warunkowa czy dany piktogram jest przypisany ?

2. Jak wyswietlac te piktogramy aby sie ustawialy w szyku takim
przyklad dla 12 pikt.
1 2 3 4
5 6 7 8
9 10 11 12
przyklad dla 6 roznych
3 6 8 9
10 11
Chodzi o wyswietlanie dla wersji 1a oraz 1b

Z gory dziekuje

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
mike
post
Post #2





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

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


Zagadnienie jest proste.

Żeby było jak najbardziej optymalnie i poprawnie przydałyby się trzy tabele:
Firmy, Piktogramy, Połącznie.

Tabela Firmy to identyfikator id i jakieś tam atrybuty.
Tabela Piktogramy to identyfikator id i jakieś tam atrybuty.
Tablela Połączenie to identyfikator firmy i identyfikator piktogramu.

Teraz wyciągając info o firmie i i jej piktogramach (np. o firmie nr. jeden) wykonujesz dwa zapytania:
  1. SELECT *
  2. FROM Firmy WHERE id = 1;

  1. SELECT p.*
  2. FROM Połączenie c, Piktogramy p WHERE c.id_firmy = 1 AND c.id_piktogramu = p.id;
Go to the top of the page
+Quote Post
podziak
post
Post #3





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 10.09.2005

Ostrzeżenie: (20%)
X----


no ale to na to samo wychodzi jakbym przypisal piktogramy do tabeli firmy
nic to nie zmienia
i nie rozumiem po co mialaby byc 3 tabela skoro wystarczyly by dwie
np firmy oraz piktogramy
w tabeli firmy kluczem obcym bylby piktogram_id a w piktogramy piktogram_id bylby kluczem podstaowym wiec mniej miejscozerne to by bylo
ale mysalem czy daloby do bazy dac jakies dane alfanumeryczne jako jakis ciag a pozniej parsowac ten ciag poprzez rozpoznawanie go i wysiwetlanie dla danej literki odpowiedniego piktogramu

no i kwestia nr 2 jak to wyswietlac (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
mike
post
Post #4





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

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


Proponujesz takie tabele:
Firmy
id_firmy | id_piktogramu | pozostałe atrybuty

Piktogramy
id_piktogramu | pozostałe arybuty

Rozwiązanie to jest tylko pozornie mniej pamięciożerne a napewno bardziej powodujęce nadmiarowość.
Bo jak masz firmę, która posiada 12 piktogramów to musisz dodać do tabeli firma 12 rekordów, z czego w każdym powielasz informacje o firmie i zmienia się tylko piktogram.
Trzy tabele nie powodują nadmiarowości danych, a trzymanie (nawet dużej) tabeli z powiązaniami nie jest wcale pamięciożerne.

Dwie tabele to też wyjście o ile masz pewnośc że liczba piktogramów nie będzie się zmieniać. Tylko piktogramy musiałbyuś trzymać w jednum polu jak zbiór (set). Trzy tabele gwarantują jednak dużo większą elastyczność.

Jest to typowa relacja wiele do wielu. Tabela łącząca jest najlepszym rozwiązaniem.

A co do wyświatlania:

  1. <?php
  2.  
  3. error_reporting( E_ALL );
  4. ini_set( 'display_errors', 1 );
  5.  
  6. $arrTab = array( 1 => 12, 34, 35, 1234, 235, 23, 23, 34, 65, 76, 34 );
  7. echo '<table>';
  8. echo '<tr>';
  9. for( $i = 1, $last = sizeof( $arrTab ); $i < $last; $i++ )
  10. {
  11. if( $i % 4 == 0 )
  12. {
  13. echo '</tr><tr>';
  14. }
  15. echo '<td>' . $arrTab[ $i ] . '</td>';
  16. }
  17. echo '</tr>';
  18. echo '</table>';
  19.  
  20. ?>
Go to the top of the page
+Quote Post
podziak
post
Post #5





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 10.09.2005

Ostrzeżenie: (20%)
X----


Witam!!!

No troszke nie lapie
bo rozwiazanie z dwoch tabel tez daje mi elastycznosc

firma id_firmy id_piktogramu
piktogramy id_piktogramy, pikt1, pikt2 ...

przeciez po dowiazaniu do frmy w tabeli piktogramy wstawiam 0 lub 1 jesli jest i to wszystko pozniej ifem sprawdzam i po klopocie wiec nie widze potrzeby stosowania tabeli wiazacej przeciez to mozna wykonac jednym zapytaniem chyba ze sie myle wiec jesli mozna prosze o dokladniejsze wyjasnienie.

Pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 17:21