Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Problem z łączonym zapytaniem
Zac
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 2
Dołączył: 9.06.2008

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


Witam. Mam kłopot ze stworzeniem zapytania. chcialem pobrac dane z 2 tabel

1 tabela "produkty"

CODE
CREATE TABLE `produkty` (
`id` int(11) NOT NULL auto_increment,
`kategoria` int(11) NOT NULL,
`nazwa` varchar(60) NOT NULL,
`cena` float NOT NULL,
`opis` text NOT NULL,
`img` text NOT NULL,
`kolory` text NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=32 DEFAULT CHARSET=utf8 AUTO_INCREMENT=32 ;


2 tabela "kolory"

CODE
CREATE TABLE `kolory` (
`id` int(11) NOT NULL auto_increment,
`nazwa_koloru` text NOT NULL,
`plik` text NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;


Chciałem żeby wyglądało to tak, że wyświetlam produkt o konkretnym id i do niego dodaje kolory z tabeli "kolory". W tabeli produkty `kolory` mam wpisane po przecinku id, które maja być pobrane z tabeli kolory `id`. Nie wiem zbytnio jak skonstruować zapytanie pobierające te dane.
Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
drzalek
post
Post #2





Grupa: Zarejestrowani
Postów: 170
Pomógł: 18
Dołączył: 6.03.2007

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


A nie byłoby prościej utworzyć jeszcze jedną tabelę np

  1. <?php
  2. create table kolory_produktow
  3. (
  4. id_produktu int,
  5. id_koloru int
  6. )
  7. ?>

wyrzucić wtedy te kolory text z tabeli produkty i operować na nowej tabeli??

Chyba, że nie masz możliwości ingerencji w baze wtedy oczywiście pomysł odpada smile.gif
Go to the top of the page
+Quote Post
zebupl
post
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 2
Dołączył: 7.10.2008

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


Zac przeglądam Twoje tabele i widzę, że z bazami nie miałeś za dużo do czynienia. drzalek dał Tobie dobrą odpowiedź. Musisz utworzyć pośrednią tabelę, która będzie trzymałą klucze z produktów i kolorów.

Technicznie nazwya się to relacja n do m (n:m, wiele do wielu). Proponuje poczytaj sobie o relacjach (1:1, 1:n, n:m, klucz główny, klucz obcy) to są takie same podstawy jak w progrmowaniu np instrukcje warunkowe.

Później wyciągasz z takiej tabeli wszystkie produkty albo produkty o danym kolorze. Mając klucze masz możliwość integracji bardzo łatwej między tymi 3 encjami.

pozdrawiam
munky
Go to the top of the page
+Quote Post
Zac
post
Post #4





Grupa: Zarejestrowani
Postów: 27
Pomógł: 2
Dołączył: 9.06.2008

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


faktycznie, ucze się jeszcze tego wszystkiego, dzięki za podpowiedzi

a jeszcze jedno pytanie. Bo ogólnie to ma wyglądać tak, że wyświetlam szczegóły produktu opis, cena itd. no i dostępne kolory, które muszę wyświetlić jako obrazki. Nazwy plików w których mam obrazki są w tabeli "kolory" w kolumnie "plik". Czy to jest dobre rozwiązanie ? Jak można zrobić to najprościej ?
Go to the top of the page
+Quote Post
zebupl
post
Post #5





Grupa: Zarejestrowani
Postów: 26
Pomógł: 2
Dołączył: 7.10.2008

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


Witam,

Tak to jest dobre rozwiązanie. Produkty trzymasz w tabeli z produktami a kolory w oddzielnej. Do tego robisz relację n:m i sprawa załątwiona.

Pozdrawiam
munky
Go to the top of the page
+Quote Post

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: 20.08.2025 - 14:16