Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 30.04.2006 Ostrzeżenie: (0%)
|
Witam. Może ktoś z Państwa pomoże mi rozwiązać następujący problem.
Mamy 2 tabele tabela "test" ma następujące komórki id | nazwa | opis 1 | test | to jest test 2 | test 2 | to jest test 2 3 | ... | ... 4 | ... | ... tabela "nazwa" id | nazwa | wartości 1 | nazwa 1 | 1,2 2 | nazwa 2 | 1,4 3 | nazwa 3 | 1,4,2,3 jak zrobić zapytanie takie, że wybieram konkretny id z tabeli "nazwa" oraz wszystkie komórki z tabeli "test" które odpowiadają numeracji z tabeli "nazwa".wartości Ja poradziłęm sobie tak (w skrócie): select * from test; ... $t[ id ] = nazwa; select * from nazwa where id=5; ... $w = explode(',', $wartosc) for (...) echo $t[ ($w[$i]) ]; ale interesuje mnie bardziej profesjonalne podejście do tego problemu (może jest to możliwe zrobienie w jednym zapytaniu) Przy okazji ma ktoś jakieś ciekawe tutoriale to opisu zaawansowanych zapytań w mysql? Tak żeby były jeszcze opisane przykłady z użyciem IF, oraz @ (np. @val := if (...)). |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 100 Pomógł: 1 Dołączył: 6.02.2006 Ostrzeżenie: (0%)
|
Ale jesteś uparty (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Nie powinno się robić takiej struktury bazy danych jaką podałeś - błąd już w fazie projektowania.
Jeśli chcesz tak zrobić, to musisz wyraźnie oddzielić od siebie składniki, aby wiedzieć gdzie zaczyna się kolejny identyfikator tabeli t1 (chyba, że będzie ich mniej niż 10). W przykładzie, który podałeś pole 'skladniki' może mieć postać: ';1=1 szklanka;2=3 sztuki;3=2 łyżeczki' (średnik na początku). Wtedy zapytanie można zbudować następująco:
Po wykonaniu zapytania otrzymasz 3 wiersze:
i musisz kolejno zamieniać w pętli ';identyfikator=' na t1.nazwa IMO to zupełnie nie ma sensu. Wyobraź sobie, że otrzymasz 100 wierszy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
nixau Pomoc w tworzeniu zaawansowanego zapytania 24.12.2006, 22:20:48
wipo Jak piszesz o profesionalizmie to może zastosuj in... 25.12.2006, 08:19:57
nixau Niestety nie mogę stworzyć takiej konstrukcji jak ... 25.12.2006, 15:18:05
Norbas Powinieneś zastosować jeszcze jedną tabelę np. ... 25.12.2006, 20:59:12
nixau Wydaje się mi, że nie ma potrzeby tworzenia dodatk... 26.12.2006, 01:11:16
wipo No to norbas i ja daliśmy Ci gotowe rozwiązanie, k... 26.12.2006, 07:29:39
nixau To może jeszcze inaczej.
Tabela 1 (T1)
Kodid | na... 30.12.2006, 00:04:50
dr_bonzo CytatNiestety nie mogę stworzyć takiej konstrukcji... 30.12.2006, 10:49:23 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 18:24 |