nree Skrevet 26. oktober 2006 Del Skrevet 26. oktober 2006 (endret) Først av alt, takk for at du gidder å lese alt dette i det hele tatt.. håper noen er snille og hjelper Jeg holder på med et artikkelsystemet og i den sammenhengen skulle jeg hatt et arkiv på siden, slik at man kan finne frem mer en de 6 artiklene som vises på forsiden.. Jeg har 2 kategorier, tester og artikler.. Det som er, er at det er underkategorier, de ligger i databasen i en egen tabell der tabellstrukturen ser slik ut: id - hkat - navn hkat er der hovedkategorien nemlig 1 eller 2 (tester og artikler) ligger, id er den artiklene bruker for å vise kategori.. I artikkel tabellen er det et felt for dato, ett for måned og ett for år.. Det er også et felt der IDen til kategorien ligger.. Jeg skulle fått det til slik at om man loader scriptet for "tester arkiv" skal det komme opp arkiv for artikler med kategori som har hkat=1.. Sortert etter år... Altså, vist det ligger tester fra år 2006, 2007 og 2008 i databasen kommer det opp linker med hvert år: 2006 - 2007 - 2008.. Linkene kan veldig got være til get variabler (?side=arkiv&hkat=1&aar=2006) Når man trykker på de kommer det opp akkuratt det samme bare i måned.. Månedene som det er skrevet artikler i kommer opp på siden evnt. også hvor mange artikler det er denne måneden.. Da tenker jeg å bruke preg_replace til å skifte ut måned tallet til navn.. Når man da trykker på en måned kommer alle artiklene nedover med les mer funksjon. Dette kan også godt være i get varabler (?side=arkiv&hkat=1&aar=2006&mnd=10) Hvordan jeg lister opp artiklene vet jeg, det er listinga av år og måneder som det er skrevet artikler i jeg er ute etter... Og, for å si det som det er så har jeg ikke snøring i det hele tatt på hvordan man lister opp slik som dette uten at det blir én 2006 link for hver artikkel nedover.. Så helt til slutt.. det jeg egentlig er ute etter er hvordan liste opp år og månde kun én gang, på en side, slik at man tilslutt ser alle artiklene i den gitte hovedkategori, måned og år.. Håper det var noen som sjønte dette, ble litt mye, får håpe det er noen som kan ta seg tid til å hjelpe meg med dette.. Om noen har spørsmål er det bare å komme med de, jeg svarer så kjapt som mulig.. Tusen takk for din oppmerksomhet Endret 26. oktober 2006 av goggen90 Lenke til kommentar
oxodesign Skrevet 26. oktober 2006 Del Skrevet 26. oktober 2006 Fryktelig langt sitat fjernet av moderator. Står i posten rett over. 7157862[/snapback] Hei, Det var mye å lese, jeg gidder ikke å kode for deg men skal gi deg noen hint. Datofeltet i databasen på artiklene skal være til stor hjel, vett ikke hvilken type du har den i men hvis det er int(10) så er det ganske greit. Du må gjøre følgende ting: 1. Lag en spørring mot databasen der du henter alt sortert etter datafeltet. Hent bare siste innlegg og sjekk datoen der. Ut fra den så lager du en start år. Eks hvis det er 15.10.2004 så vett du at siste innlegg er fra 2004 da lister du opp fra 2005 til det året vi er nå, 2006. Da vil du få sånn resultat: 2004 2005 2006 2. Same på mnd. finner start mnd på første året, i eks. ovenfor ”oktober” og printer fra den mnd og ut for det året! 3. Får hente fram artikler fra databasen fra dato til dato, kan du gjøre på to måter: 1. Kjøre spørring på sql og hente bare de bestemte artiklene fra bestemt tidsperiode. 2. Kjøre spørring på sql og hente alle artiklene og sortere det etterpå med PHP. Det var håper det hjelper deg noe ellers send meg en pm for hjelp. Mvh. OXODesign Lenke til kommentar
nree Skrevet 27. oktober 2006 Forfatter Del Skrevet 27. oktober 2006 Det med år var greit.. selvom jeg synst det hadde vert lettere å lage en spørring som printer ut alle årstallene som faktisk er i databasen, det eneste er at den kun skal bli printet ut èn gang.. Da printer scriptet ikke ut 2005 om det ikke er noen artikler fra 2005.. Samme med dato.. Hente ut artiklene vet jeg hvordan jeg skal gjøre, har auto_in.. på den tabellen, så jeg sorterer etter ID Lenke til kommentar
nree Skrevet 27. oktober 2006 Forfatter Del Skrevet 27. oktober 2006 EBA News har noe veldig likt det jeg gjerne skulle fått til: http://skriblerier.net/index.php?show=archive Lenke til kommentar
endrebjo Skrevet 27. oktober 2006 Del Skrevet 27. oktober 2006 (endret) Bruk DISTINCT i spørringen for å finne relevante årstall. SELECT DISTINCT year FROM table Uansett hadde du ikke trengt å dele dato-delen av databasen opp i tre (eller flere) kolonner når MySQL har f.eks DATE- eller DATETIME-typene, og hauger av tilhørende funksjoner. Endret 27. oktober 2006 av endrebjorsvik Lenke til kommentar
nree Skrevet 27. oktober 2006 Forfatter Del Skrevet 27. oktober 2006 endrebjorsvik: Tusen takk Kan du forklare litt mer om DISTINCT? Lenke til kommentar
Peter Skrevet 27. oktober 2006 Del Skrevet 27. oktober 2006 The ALL, DISTINCT, and DISTINCTROW options specify whether duplicate rows should be returned. If none of these options are given, the default is ALL (all matching rows are returned). DISTINCT and DISTINCTROW are synonyms and specify removal of duplicate rows from the result set. Lær deg å slå opp i manualen, først som sist. http://dev.mysql.com/doc/refman/4.1/en/select.html Lenke til kommentar
endrebjo Skrevet 27. oktober 2006 Del Skrevet 27. oktober 2006 (endret) Når jeg leser videre ser jeg at du kan bruke DISTINCT på månedene også (og en liten dært med ORDER BY for sikkerhets skyld). SELECT DISTINCT month FROM table WHERE year = 2005 Det du egentlig bør gjøre er å sette deg inn i hva en database kan tilby av funksjonalitet hvis du bruker den riktig. Det finnes så utrolig mye mer enn kun SELECT * FROM table. Da tenker jeg å bruke preg_replace til å skifte ut måned tallet til navn.. preg_replace er unødvendig her. Bruk heller et array med månedtallet som nøkkel, og månednavnet som verdi. Endret 27. oktober 2006 av endrebjorsvik Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå