/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Forum og én SQL-streng - Kan det lade sig ~
Fra : Peter


Dato : 06-07-01 06:59

Hej

Jeg er ved at lave et forum som skal fungere fuldstændigt som en normal
news-reader så indlæg rykkes ind i forhold til den post de er svar på.

Hver post i min database har sit eget unikke ID-nummer.
Et svar har yderligere et "in_reply_to_ID" som er ID'et på den post der
besvares.

Det jeg gerne ville var at lave en SQL streng der løb hele basen igennem og
hentede alle posterne i den korrekte rækkefølge.
Dvs. at hovedindlægget kommer først og derefter dets svar.


Jeg har indtryk af at det er helt umuligt at lave
Er der nogen der har ideer?

På forhånd tak,
Peter



 
 
Jonas Astrup - html.~ (06-07-2001)
Kommentar
Fra : Jonas Astrup - html.~


Dato : 06-07-01 10:34

Peter wrote in dk.edb.internet.webdesign.serverside.asp:
> Jeg har indtryk af at det er helt umuligt at lave
> Er der nogen der har ideer?

Det er ikke umuligt

Men du skal ikke bruge SQL på den måde - istedet bør du kun lave ét
databasekald, og derefter tæske dine records ned i et array. Databasekald er
laaaaaaangsomme

Når du så har lavet dit array løber du det igennem og lister alle hvor
"in_reply_to_ID" er tomt. Så får du listet alle dine hovedindlæg.

Finten er nu at lave en rekursiv funktion - det vil sige en funktion, som
kalder sig selv.

For hvert hovedindlæg kalder du funktionen med hovedindlæggets ID. Funktionen
løber arrayet igennem og finder ud af om der er nogle svar til hovedindlægget.
For hvert svar kalder funktionen så sig selv igen og tjekker om der er svar
til svaret, og så videre, og så videre.

Sådan får du threads i dine indlæg - det er ikke supernemt at få til at lykkes
første gang - men det er en ret god følelse når det lykkes

Mvh
Jonas

--
Brug Validator service: http://www.html.dk/validator
- Tast din URL én gang, og validér dokumentet hos 12 validatorer
- Understøtter HTML, CSS og søgemaskineoptimering

Jesper Stocholm (06-07-2001)
Kommentar
Fra : Jesper Stocholm


Dato : 06-07-01 12:02

Jonas Astrup - html.dk wrote in dk.edb.internet.webdesign.serverside.asp:
> Peter wrote in dk.edb.internet.webdesign.serverside.asp:
> > Jeg har indtryk af at det er helt umuligt at lave
> > Er der nogen der har ideer?
>
> Det er ikke umuligt
>
> Men du skal ikke bruge SQL på den måde - istedet bør du kun lave ét
> databasekald, og derefter tæske dine records ned i et array. Databasekald er
> laaaaaaangsomme
>

Det kan da godt laves med kun ét databasekald (lidt afhængigt af,hvordan man
ser på det).

En løsning ville imo være følgende:

Lav en SQL-server instans, der løbende henter nye indlæg ned. På denne server
laver man en SP, der henter indlæg/records, sorterer dem og laver en indikation
af, hvor meget hvert indlæg skal rykkes ind. Når du modtager resultatet skrives
det blot ud med en

do while not rs.EOF
' write something
loop

Jakob postede for et stykke tid siden et indlæg med nogle links, hvor det
ovenfor beskrevne er listet - jeg har blot ikke kunnet finde det lige nu



Når det så er sagt, så vil jeg til enhver tid lave det på den måde du beskriver
det - med fx w3 sockets fra dimac - selvom jeg heller ikke kan få den s****
rekursive funktion til at virke korrekt !

... og var det ikke i den forbindelse en idé at lave et eksempel på html.dk ?

Jesper
http://stocholm.dk

--
Brug Validator service: http://www.html.dk/validator
- Tast din URL én gang, og validér dokumentet hos 12 validatorer
- Understøtter HTML, CSS og søgemaskineoptimering

Peter (06-07-2001)
Kommentar
Fra : Peter


Dato : 06-07-01 15:27

>For hvert hovedindlæg kalder du funktionen med hovedindlæggets ID.
Funktionen
>løber arrayet igennem og finder ud af om der er nogle svar til
hovedindlægget.
>For hvert svar kalder funktionen så sig selv igen og tjekker om der er svar
>til svaret, og så videre, og så videre.


hej

Det lyder som en fantastisk løsning!
Jeg læste dit indlæg én gang og forstod det med det samme.
Godt formuleret og tænkt!

Jeg takker!

VH Peter



Jesper Stocholm (08-07-2001)
Kommentar
Fra : Jesper Stocholm


Dato : 08-07-01 12:54

Jonas Astrup - html.dk wrote in dk.edb.internet.webdesign.serverside.asp:
> Peter wrote in dk.edb.internet.webdesign.serverside.asp:
> > Jeg har indtryk af at det er helt umuligt at lave
> > Er der nogen der har ideer?
>
> Det er ikke umuligt
>
> Men du skal ikke bruge SQL på den måde - istedet bør du kun lave ét
> databasekald, og derefter tæske dine records ned i et array. Databasekald er
> laaaaaaangsomme
>
> Når du så har lavet dit array løber du det igennem og lister alle hvor
> "in_reply_to_ID" er tomt. Så får du listet alle dine hovedindlæg.
>

Du har ret i din idé - men den har den konsekvens, at nye indlæg i gamle tråde
ikke er synlige - som de vil være i en "normal" newsreader - og det er et
problem, som html.dk også lider af. Jeg ved dog ikke, hvordan det skal løses.

Jesper
http://stocholm.dk

--
Brug Validator service: http://www.html.dk/validator
- Tast din URL én gang, og validér dokumentet hos 12 validatorer
- Understøtter HTML, CSS og søgemaskineoptimering

Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408857
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste