Vet inte om detta kanske borde vara i php forumet, men i alla fall:
Jag har en tabell som heter artiklar, där lagras id, rubrik, texten, datum och författaren. Detta fungerar utmärkt och allt är frid och fröjd.
Men så tänkte jag att jag skulle lägga till ett kommentarsystem så att man kan kommentera varje artikel. Och längst ner på varje artikel visas kommentarerna och ett litet forumlär där man kan skriva in kommentaren.
Jag kan ju inte göra en ny tabell för varje artikel, det skulle bli alldeles för rörigt. Och jag har bara tillgång till en databas.
Skall jag göra en egen tabell för kommentarerna? Men hur skall dom veta vilken artikel dom skall visas i?
Vore bra om någon kunde hjälpa.
PS. Jag är riktigt ny, började med det här i går typ. Så var inte alltför elaka.. :)
Du använder id-numret för artikeln för att koppla ihop den med en viss kommentar. Dvs, när du visar en artikel så har du med id i ett hidden fält och använder det värdet när du gör insert i kommentarstabellen.
För att få fram kommentarer för alla artiklar kan du använda denna fråga
select * from artiklar left outer join kommentarer
on id = artikelid
order by id, kdatum
Det behövs en outer join för att du skall få med även de artiklar som saknar kommentarer.
Tja, inte för att jag fattar så mycket, men jag ska kolla det imorgon.
Men fungerar detta så att man kan ha flera kommentarer för varje artikel? då måste dom kommentarerna ha samma id eller? (fast hur kan man då skilja på dom?)
och vad är en outer joint?
(som jag sa är jag helt ny på detta..)
EDIT: varför döpte du en kollumn till kdatum? varför inte bara datum? finns det någon dold mening? Och används datetime för att automatiskt lagra datumet?
Och vad är varchar för något?
Finns det någon bra guide eller något som man kan kolla in? Eller någon bra bok?
Blä, många frågor.. :)
Du kan ha flera kommentarer för varje artikel. Jag tänkte att man kan använda artikelid + kdatum + vem för att identifiera en viss kommentar. Om du har med datum så är det enkelt att sortera också. Att jag döpte kolumnen till kdatum vara bara för att den skulle vara unik eftersom du redan har en datumkolumn i artikeltabellen.
Outer joint var en ny en. Join heter det och det innebär att man kopplar ihop värden från två eller flera tabeller. Det är bland det mest fundamentala i relationsteori så det måste man bara förstå.
Skillnader mellan inner och outer join förklarar jag i detta inlägg:
Varchar är en datatyp som man kan använda för att lagra textdata av variabel längd. I detta fall är maxlängden 20 men man kan ange upp till 255 i Mysql. (om man behöver kunna lagra mer än så så får man använda typen text.)
Datetime används för att lagra datum och tid. Det är ingen automatik utan man får själv ange värdet när man gör insert eller update. Funktionen current_timestamp returnerar aktuell tidpunkt.
Är det inte bra att ha två kolumner som heter datum? (För jag gjorde precis det)
Men hur som helst. Jag löste det på ett lite enklare sätt. Jag hade en artikelid som lagrade i vilken artikel kommentaren skrevs, sedan bara jag la in i artiklarna att de kommentarer vars artikelid var lika med artikelns id skulle visas.
Och så använde jag mig av timestamp istället för datetime för att automatiskt lagra datumet artikeln skrevs och sedan sortera dem därefter.
261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2