Säg att jag har en array som innehåller följande värden:
1
2
1
4
4
5
1
Går det att rensa ut dubletterna? Jag vill enbart ha med ett exemplar av varje värde.
6 svar · 252 visningar · startad av Andy
Säg att jag har en array som innehåller följande värden:
1
2
1
4
4
5
1
Går det att rensa ut dubletterna? Jag vill enbart ha med ett exemplar av varje värde.
Hur får du fram värdena över huvudtaget?
------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."
Undrar samma som Pace, för om du hämtar värdena från en databas kan du enkelt välja vilka värden som ska returneras med SQL-frågan.
SELECT DISTINCT ( fldField ) FROM tblTable
T.ex.
Det är ganska krångligt. jag har ett forum som ligger här: http://www.scorereviews.com/forum
Nu vill jag ordna en sökfunktion för forumet.
I stort sett kan man säga att forumet består av två olika tabeller, som ser ut som nedan (endast relevanta fält med):
tableTopics
ID | int (räknare)
Title | nvarchar (titeln på ämnet)
Text | ntext (själva texten)
tablePosts
ID | int (räknare)
Text | ntext (texten)
BelongsToTopic | int (innehåller det id som hör till det Topic som svaret hör till)
Jag måste ju då söka i Text-fälten i båda tabellerna, men på sidan vill jag ju bara skriva ut matchande Topics (även om träffarna hittas i tablePosts) och dessutom bara en gång (dvs om en träff hittas i ett topic (som t ex har ID 1, samt ännu en träff i ett inlägg som hör till det ämnet (BelongsToTopic = 1) så vill jag ju bara skriva ut länken till ämnet en gång på sidan)...
Därför tänkte jag som så att jag först söker igenom alla topics, och sparar ner id på matchande topics i en array. Sedan söker jag igenom tablePosts och sparar ner värdet i belongsToTopic för alla träffar, i samma array. Sedan använder jag arrayen för att skriva ut länkarna till de relevanta inläggen. Detta gör ju dock att arrayen antagligen kommer att innehålla dubletter.
Någon som förstår vad jag snackar om öht? :)
Skriv en Join med SQL istället och sortera bort dubletter där (med Distinct).
------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."
Är antagligen en korkad fråga, och fel forum, men... hur gör jag det? Mina kunskaper vad gäller SQL är ganska färska...
Något sådant här kanske:
SELECT DISTINCT t.ID, t.Title, t.Text
FROM tableTopics t
LEFT JOIN tablePosts p ON t.ID = p.BelongsToTopic
WHERE t.Title = '%sökord%' OR p.Title = '%sökord%' OR t.Text = '%sökord%' OR
p.Text = '%sökord%'
------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."
[Redigerat av Pace den 09 feb 2002]