![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 1.04.2004 Skąd: Warszawa Ostrzeżenie: (0%)
|
Posiadam dwie tabelki. Jedna z produktami a druga ze zdjęciami do produktów.
[products] id, name, destiny, shotrDescription, description [photo] id, idParent, photo, minPhoto produkty.id = photo.idParent - tak lacza sie obie te tabelki Nie moge sobie poradzic z zadaniem zapytania ktore bedzie mi zwracac wszystkie produkty + zdjecie do tego. Probowalem cos takiego a także na joinach ale jakoś mi nie wychodzi. Szukałem też trochę na forum ale też nie za bardzo: [sql:1:f985ebe214]SELECT p.id, p.name, p.destiny, p.shortDescription, ph.photo, ph.minPhoto FROM products as p, photo as ph WHERE p.id = ph.idParent[/sql:1:f985ebe214] |
|
|
|
Post
#2
|
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław |
[sql:1:2eb4102871]SELECT p.id, p.name, p.destiny, p.shortDescription, ph.photo, ph.minPhoto
FROM products p LEFT JOIN photo ph ON ( p.id = ph.idParent )[/sql:1:2eb4102871] |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 1.04.2004 Skąd: Warszawa Ostrzeżenie: (0%)
|
Hmm ... nie za bardzo mi działa, z tabelki products wyciąga a z photo już nie i nie wiem czy to mój błąd i mam coś źle w kodzie czy zapytanie nie tak. A jeszcze jak zadać to zapytanie żeby nawet jak nie znajdzie zadnego zdjęcia to jednak wyświetli dane z products. Obrazowo mówią jak nie będzie zdjęcia to wyświetli bez niego.
|
|
|
|
Post
#4
|
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław |
włanie tak jest w przypadku wykorzstania LEFT JOIN.
Jeśli chcesz, by były tylko te rekordy któe wystepują w obu tabelach - używasz INNER JOIN A co do błędów - nie wiem, co może być nie tak. Jakiego typu masz błedy? |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 1.04.2004 Skąd: Warszawa Ostrzeżenie: (0%)
|
Poprawiam się: zapytanie działą dobrze bo sprawdziłem a samym MySQL'u. Krzaczy mi się coś kod ale to już zaraz mam nadzieje dojde.
Thx (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) W razie czego jeszcze napisze. Jesze jedno ... jak zakladajac mam 3 zdjecia dodane do danego produktu to chcialbym aby zapytanie za pierwszym znalezieniu zdjecia przeszlo dalej do szukania nastepnego. Nie wiem czy sie jasno wyrazilem ale chodzi o to zeby baz wzgledu na to ile jest zdjec dodanych do produktu wyswietlalo sie tylko jedno. Da sie tak? A nie wyświetlna mi dlatego bo mając zapytanie: [php:1:5d523e85d7]<?php $query="SELECT p.id, p.name, p.destiny, p.shortDescription, ph.idParent, ph.photo, ph.minPhoto FROM products p LEFT JOIN photo ph ON ( p.id = ph.idParent )"; $qid = dbQuery($query); include("templates/ofertaLista.php"); ?>[/php:1:5d523e85d7] Potem ofertaLista.php [php:1:5d523e85d7]<?php while($rec = dbFetchObject($qid)) { include("templates/ofertaWiersz.php"); } ?>[/php:1:5d523e85d7] I ofertaWiersz.php [php:1:5d523e85d7]<?php if($rec->photo != NULL) { $size = getimagesize("../photo/offerPhotos/".$rec->photo); $szerokosc = $size[0] + 30; $dlugosc = $size[1] + 40; ?><tr><td width=80> <a href="java script:winOpen('../photo/offerPhotos/<?pv($rec->photo)?>', '<?pv($szerokosc)?>', '<?pv($dlugosc)?>'); "><img src='../photo/offerPhotos/<?pv($rec->minPhoto)?>' border=0></a><br></td><td><h1> <? } else { ?><tr><td width=80> <img src='../photo/offerPhotos/pusty.jpg' border=0><br></td><td><h1> <? } ?> <b><?pv($rec->name)?></b>  <?pv($rec->destiny)?><br> <?pv($rec->shortDescription)?><br> <a href="java script:noweW=window.open('oferta_adm.php?action=one&id=<?pv($rec->id)?>', 'informacje', 'width=550,height=400,left=25,top=25,scrollbars=yes,status=yes, resizable=no'); void(0);"> [więcej]</a><a href="oferta_adm.php?action=upd&id=<?pv($rec->id)?>"> [edytuj]</a><a href="oferta_adm.php?action=del&id=<?pv($rec->id)?>"> [usuń]</a><a href="photo_adm.php?action=add&id=<?pv($rec->id)?>"> [photo]</a> </td></tr> ?>[/php:1:5d523e85d7] I nie widzi mi w $rec->photo jako tego co mi zapytanie zwróciło. Dla jasności funkcja dbQuery, dbFetchArray to moje funkcje które odpowienio wysyłają zapytanie do bazy danych oraz grupują wyniki w tablicy asocjacyjnej |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 1.04.2004 Skąd: Warszawa Ostrzeżenie: (0%)
|
Wszystko juz działa ale mam jeszcze pytanko czy istnieje taka fizyczna możliwość aby zapytanie
[sql:1:65edaaddbc]SELECT p.id, p.name, p.destiny, p.shortDescription, ph.photo, ph.minPhoto FROM products p LEFT JOIN photo ph ON ( p.id = ph.idParent )[/sql:1:65edaaddbc] Zwracało tylko jedna fotke do każdego produktu pomimo tego, iż w bazie jest więcej? |
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 05:12 |