Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Problem z łączonym zapytaniem
Forum PHP.pl > Forum > Przedszkole
Zac
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.
drzalek
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
zebupl
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
Zac
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 ?
zebupl
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
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.