Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapytanie - jedna tabela + kilka rekorów z
Sierak
post
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]
Go to the top of the page
+Quote Post
DeyV
post
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]
Go to the top of the page
+Quote Post
Sierak
post
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.
Go to the top of the page
+Quote Post
DeyV
post
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?
Go to the top of the page
+Quote Post
Sierak
post
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>&nbsp&nbsp<?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)?>">&nbsp[edytuj]</a><a href="oferta_adm.php?action=del&id=<?pv($rec->id)?>">&nbsp[usuń]</a><a href="photo_adm.php?action=add&id=<?pv($rec->id)?>">&nbsp[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
Go to the top of the page
+Quote Post
Sierak
post
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?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 05:12