Hjælp til at joine tabeller

Tags:    php

<< < 12 > >>
Hejsa.

Er igang med noget der mest af alt minder om en shopløsning. Jeg har en tabel med vare kategorier, samt én enkelt tabel med varer. Det jeg gerne vil er at lave en kategori oversigt hvor man kan se alle kategorier, samt hvor mange varer der er i hver kategori. Ind til videre hiver jeg kategorierne ud på følgende måde:

$sql = "SELECT * FROM categories";
$result = mysql_query($sql);

$categories = array();
while ($rows = mysql_fetch_array ($result, MYSQL_ASSOC)) array_push ($categories, $rows);
$smarty->assign ("category", $categories);

Jeg mangler så nu at lave en søgning per kategori, i vare-tabellen, for at tælle hvor mange varer der er i hver kategori, og så sende det med til min SMARTY variable?

(I vare tabellen bliver alle varer smidt ind, hver med sit matchende kategori_id).



17 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Altså skal værdierne ind i dit $categories array?

Hvis ja, så gør følgende:
while ($rows = mysql_fetch_array($result))
{
array_push($categories, $rows["antal"]);
}

I dit $sql skal du så tildele din COUNT med et navn:
$sql = "SELECT K.cat_id, K.cat_name, COUNT(P.cat_id) 'antal' FROM ads AS P INNER JOIN categories AS K ON P.cat_id = K.cat_id GROUP BY P.cat_id;";

Det gør at du slipper for og skrive $rows["COUNT(P.cat_id)"];

Det er som sådan ikke nødvendigt, men jeg foretrækker det

Håber du forstod

(Jeg koder desværre ikke PHP mere så eventuelle fejl der opstå :))



Indlæg senest redigeret d. 22.03.2009 21:04 af Bruger #11386
Dette burde gøre det:
Fold kodeboks ind/udKode 


det er mere et sql spørgsmål end det er et php spørgsmål



I teorien skulle det være noget i denne stil:
Fold kodeboks ind/udSQL kode 


Så smider den det antal produkter/varer ud som du har

(Nå Gnu var hurtigere :P)



Indlæg senest redigeret d. 22.03.2009 20:08 af Bruger #11386
Det har du måske ret i.. Var lidt i tvivl om hvor det passede bedst :)



Casper hansen: Takker, det vil jeg lige prøve :)



Ahh.. havde lige overset at Gnu også havde smidt noget kode.. Takker til jer begge og prøver det lige af :)



Casper Hansen: Jeps, det er lige præcis det resultat jeg søger, men kan ikke lige finde ud af at få det til at fungere med den kode du postede.. Sikkert fordi jeg ikke helt kan overskue hvad der sker.

De to tabeller der skal joines hedder henholdsvis "categories" og "ads", og de indeholder begge "cat_id".



Uhm havde du ikke en varer tabel?

Prøv og smid et billede op af din tabeller så kan jeg se om jeg kan hitte ud af det

tblProdukter er der hvor du har dine varer

Den tabel har to felter:
fldID og fldKatID

Hvor fldKatID henviser til et ID i tabellen tblKategorier som har et felt der hedder fldID



Tror jeg har fået det til at virke nu, men er så i tvivl om hvordan jeg hiver tallet ud i min SMARTY template...

Min PHP ser nu sådan ud:
Fold kodeboks ind/udKode 


Og min template ser sådan ud:
Fold kodeboks ind/udKode 




EDIT: Hmm, og nu hiver en også kun kategorier ud som rent faktisk indeholder annoncer.. Den skulle gerne vise alle kategorier, også selvom de er tomme.



Indlæg senest redigeret d. 22.03.2009 21:02 af Bruger #14754
<< < 12 > >>
t