![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 17.01.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem. Oto on: - mam dwie tabelki podobne do tych poniżej:
[php:1:3c6b7fddb0] table p --------------------- id name 1 xxxx 2 zzzzz table i --------------------- imgid pid photo(blob) 1 1 2 2 3 1 4 1 5 1 6 2 [/php:1:3c6b7fddb0] Niby fajnie. Ale teraz chce wyciągnąc listę produktów (tabela p) i przypisanych do nich zdjęć (tabela i - relacje opisuje pid - czyli odwołanie do id produktu). Kombinowałem wiele, ale jedyne, co mi się udaje uzyskać to coś w stylu: [php:1:3c6b7fddb0] id name imgid 1 xxxx 1 1 xxxx 3 1 xxxx 4 1 xxxx 5 2 zzzzz 2 2 zzzzz 6 [/php:1:3c6b7fddb0] Wszystko jest, ale produkty się powtarzają tyle razy, ile jest do nich fotek... Zamiast tego chciałbym uzyskać coś w stylu: [php:1:3c6b7fddb0] id name imgid[1] imgid[2] imgid[3] imgid[4] 1 xxxx 1 3 4 5 2 zzzzz 2 6 [/php:1:3c6b7fddb0] Czy to możliwe w Mysql 3.x (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? Z góry wielkie dzięki za pomoc. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
A co za problem wrzucić to do tablicy w php, której kluczem bedą ID produktów, a wartością tablica z ID fotek?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 17.01.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat A co za problem wrzucić to do tablicy w php, której kluczem bedą ID produktów, a wartością tablica z ID fotek?
No nie problem, ale to: a) nieelegancko (IMG:http://forum.php.pl/style_emoticons/default/cool.gif) przy większej ilości danych w tabeli p byłoby to bardzo nieefektywne (wyciąganie wszystkiego x razy) Na IRC szanowny Pan Przewodniczący napisał, że kolega Spenalzo jest alfą i omegą jeśli chodzi o SQL (ja po przejrzeniu tego działu forum też się do tego przychylam).... więc pytanie: da się to zrobić w mysqlu czy nie? Bo jak nie to będę spokojnie kombinował z php właśnie albo po prostu dam dwa zapytania. Dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) I wesołych świąt dla wszystkich z forum i ekipy php.pl. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ale dlaczego wiele razy? Możesz jednym zapytaniem wyciągnąć:
[sql:1:3c15ad6c77]select p.id AS pid, f.id AS fid from produkty p left join foto f on (p.id=f.pid)[/sql:1:3c15ad6c77] a w php [php:1:3c15ad6c77]<?php $q=mysql_query("..."); while($t=mysql_fetch_array($q)) { $prod[$t["pid"]][]=$t["fid"]; } print_r($prod); ?>[/php:1:3c15ad6c77] nie sprawdzałem czy działa, ale powinno... |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 17.01.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Ale dlaczego wiele razy? Możesz jednym zapytaniem wyciągnąć:
Jasne, jasne, ale takie zapytanie nie jest najlepszym rozwiązaniem - fakt, w tym przypadku jest w porządku i można go od biedy, czyli w przypadku, gdy inne nie istnieje, użyć i wszystko będzie działać jak należy. Tylko czy naprawdę nie da się tego zrobić inaczej, na poziomie bazy?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) - przy większej liczbie rekordów z tabeli p, czy ich dużym rozmiarze to nie będzie zbyt efektywne. Cytat nie sprawdzałem czy działa, ale powinno...
Działa bezproblemowo. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 05:05 |