webForumDet fria alternativet

Arrayfråga

7 svar · 366 visningar · startad av Tess79

Tess79Medlem sedan feb. 20065 inlägg
#1

Hejsan.

Nu har hypatia övertygat mig om att ni är snälla så jag vågar mig på att fråga. ;)

Jag har gjort en liten webbenkät som fungerat bra. När den byggts på så har även alternativet med flervalsfrågor lagts till och här har jag gjort ett misstag visar det sig nu när jag ska hämta svaren från databasen.
När Kalle Kula svarar på frågan 1 så bockar han i 3 alternativ. Detta läggs då till i accessdatabasen med kommatecken som avskiljare mellan svaren, 1,4,7.
När jag sedan försöker plocka ut Kalle Kulas svar så blir det ju kajko, den hittar ju ingen frågas id som överrensstämmer med 1,4,7. Men då har den underbara hypatia hjälpt mig med att dela upp 1,4,7 i en array.

Men min fråga är nu går det att hämta ut från databasen med hjälp av arrayen? Eller borde jag göra på ett helt annat sätt?

Har googlat och sökt här på webforum, men jag hittar inget om hur man skulle kunna hämta från databasen med hjälp av en array, däremot hittar jag hur man hämtar från databasen som vanligt och lägger det i en array.

Gör om och gör rätt? Självklart, men det är sådan mängd data redan så jag tänkte mig försöka tassa runt min klantighet lite snyggt...

Nåja, hoppas på guidning i rätt riktning!

Terese

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#2

Låter som att databasdesignen är fel.

Som jag ser det så borde du ha en tabell för frågorna, en för svarsalternativen (refererar med id till frågan). Sen en tabell för en personer som svarat och en referenstabell för att lagra vilka alternativ personen kryssat i.

Det går nog att få till något med nuvarande lösning. Men jag skulle rekommendera att bygga om det.

Tess79Medlem sedan feb. 20065 inlägg
#3

Den är fel jag har insett det, men jag har tabell för frågorna, för de som besvarar och för deras svar. Problemet är att när svaren läggs in så skapas inte en rad för varje utan som jag skrev läggs svarets id i klump: 1,4,7.
Jag kommer att försöka åtgärda det, men just nu behöver jag en snabb lösning så det funkar under tiden. Därav frågan: går det att hämta ut från databasen med hjälp av arrayen?

Tess79Medlem sedan feb. 20065 inlägg
#4

Äh jag löste det, stäng och glöm ;)

Tess79Medlem sedan feb. 20065 inlägg
#5

Okej nu fick jag skäll av hypatia för att jag inte skrev mitt svar ifall någon fler hade samma problemas.

Jo det gick visst att hämta med en array från databasen:

SQL = "Select * From tblAnswer WHERE id LIKE '" & Trim(myArray(i)) & "' ORDER BY id ASC"

Dock hade jag lite problem eftersom arrayen plockade bort kommatecknet så fick jag även lägga en Trim på den för att ta bort mellanslag, men sen funkade det.

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#6

Ok, inte en särskilt hållbar lösning bara.
När du kommer upp i 10,11 o.s.v. så flippar det ur.

Tess79Medlem sedan feb. 20065 inlägg
#7

När jag kommer upp i 10,11 så flippar det ur? Hur menar du då? För nu funkar det med 100,101,221.

Du får jättegärna förklara varför det flippar ur och vad som flippar ur?

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#8

Ah, ok det funkar om du bara kör tal på 100.
Men kör du med 1,2,10 eller 1000,1101,2221 så krockar det.

Det flippar ur för att 1 finns i 100, därför får man en träff på det också. Samma sak med 221 i 2221.

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)