Tabellen linken

Status
Niet open voor verdere reacties.

RonaldGJ

Gebruiker
Lid geworden
28 apr 2007
Berichten
419
Hallo forumleden!

Ik ben momenteel bezig met een project, waarbij ik iets doe met foto's. Nu weet ik dat tabellen in een database aan elkaar gelinkt kunnen worden, maar ik snap niet helemaal hoe!

Ik heb al op internet gekeken, maar ik zit met een 'probleem' wat ik zo niet kan vinden.
Ik heb een tabel albums en een tabel pictures. Nu is het zo dat in de tabel pictures verwezen moet worden naar het album, waar de desbetreffende afbeelding bij hoort. Maar ik wil ook graag alle albums uit database ophalen met daarbij het aantal afbeeldingen die in de desbetreffende album staan.

Eigen een overzicht van alle albums met daarbij het getal van hoeveel afbeeldingen er bij dat album horen.

Kan iemand mij op weg helpen?

Bij voorbaat dank.

Gr. Ronald!:)
 
Tja, het is logischer dat een album een plaatje bevat dan een plaatje een album. Dat zou de normale manier zijn.

Je kunt in de tabel "plaatjes" alle resultaten met "albumx" nemen en die tellen met de count functie.

[sql]select count(albumkolom) as totaal from plaatjes where albumkolom = het_album[/sql]
 
Daar was ik al erg in over twijfel. Uiteindelijk heb ik gekozen om een afbeelding tot een album te laten behoren, puur vanwege het feit dat ik een afbeelding als een soort object wil laten zien. Maar heb je een uitleg over hoe het andersom kan. Dus een album bevat afbeeldingen. Hoe verwerk je dat in de database?

Ik neem aan dat deze query, die je nu stuurt, van toepassing is op de manier zoals ik het nu doe? Ik ga het even testen.

Gr. Ronald!:)
 
Inderdaad van toepassing op je huidige oplossing.

Normaal verwacht ik:

plaatjes:

<uniek plaatjesnr.> <locatie / data plaatje> <evt naam plaatjes> <evt andere data>

een album hoeft dan alleen:

<albumnr> <plaatjesnr.>

Op deze manier kan een plaatje in meerdere albums zitten. Eventueel kun je ook nog een derde tabel hebben die informatie over het album kan bevatten. Een en ander afhankelijk van wat je doet met de data en dergelijke.
 
Dat inderdaad iets om over na te denken.

Voor nu: Heb je zoveel verstand van mysql dat ik 1 query uitvoer dat ik het volgende krijg:

- Alle albums uit de database (Bijv. "SELECT * FROM album ORDER BY id DESC")
- Bij elk album het aantal plaatjes (De query die jij net stuurde)

Zodat ik alle albums kan laten zien, met daarachter het aantal afbeeldingen die bij het album horen. Dus een query voor alle albums. Niet dat ik het album_id hoef op te geven. Of zou je in de while-lus die count query toch als tweede er nog bij doen?

Gr. Ronald!:)
 
Volgens mij wordt dat zoiets:

[sql]select album.albumnaam, count(plaatjes.albumnr) as aantal from albums join plaatjes on album.id = plaatjes.albumnr group by album.albumnaam order by album.albumnaam desc[/sql]

Select kun je natuurlijk uitbreiden, maar dit geeft albumnaam, aantal nummers en gesorteerd op naam. Schrijf / typefouten voorbehouden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan