Avatar billede martin1000ben Nybegynder
29. juni 2005 - 07:41 Der er 5 kommentarer og
1 løsning

Udtræk vinder af konkurrence

Hejsa gruppe...

Jeg er NÆSTEN færdig med mit konkurrence modul, dog mangler det vigtigste næsten, at kunne udtrække en vinder :)

Jeg kan ikke lige hitte ud af hvordan jeg laver sql'en desværre :(

Mine tabeller

CREATE TABLE `konkurrence_question` (
  `id` int(11) NOT NULL auto_increment,
  `tekst_id` int(11) default NULL,
  `tekst` text,
  PRIMARY KEY  (`id`)
)

CREATE TABLE `konkurrence_bruger_answer` (
  `id` int(11) NOT NULL auto_increment,
  `bruger_id` int(11) NOT NULL default '0',
  `answer_id` int(11) NOT NULL default '0',
  `question_id` int(11) default NULL,
  `konkurrence_tekst_id` int(11) default NULL,
  PRIMARY KEY  (`id`)
)

CREATE TABLE `konkurrence_answer` (
  `id` int(11) NOT NULL auto_increment,
  `question_id` int(11) default NULL,
  `tekst` varchar(255) default NULL,
  `rigtigt_svar` enum('0','1') default '0',
  PRIMARY KEY  (`id`)
)

(K = konkurrence fra nu af)
Lidt forklaring til de forskellige tabeller:

K_question:
"tekst_id" går over til en anden tabel som jeg har udeladt med diverse info om selve konkurrencen.
"id" er spørgsmålets ID
"tekst" er spørgsmålets titel

K_answer:
"question_id" er ID fra "K_question"
"id" er svarets ID
"rigtigt_svar" er 0 for forkert svar og 1 for rigtigt svar
"tekst" er svaret

K_bruger_answer:
"question_id" er ID fra "K_question"
"answer_id" er ID fra "K_answer"
"bruger_id" er et ID fra en tabel jeg har udeladt
"konkurrence_tekst_id" er ID fra en tabel jeg har udeladt


Mit mål med det hele er at udtrække bruger ID fra "K_bruger_answer"
Hvor "rigtigt_svar" = 1 fra "K_answer" og alle "question_id" er $id

Spørg endelig hvis du mangler oplysninger, så vil jeg prøve at forklare det lidt nærmere :)
Avatar billede imago-dei Nybegynder
29. juni 2005 - 09:05 #1
Noget i stil med:

SELECT K_bruger_answer.bruger_id FROM K_bruger_answer INNER JOIN K_answer ON K_bruger_answer.answer_id = K_answer.id
WHERE rigtigt_svar = 1 AND question_id = @id
Avatar billede martin1000ben Nybegynder
29. juni 2005 - 09:15 #2
Fik lavet mit mål forkert kan jeg se :)

Mit mål med det hele er at udtrække 1 random bruger ID fra "K_bruger_answer"
Hvor "rigtigt_svar" = 1 fra "K_answer"
og alle "id" fra "K_question" hvor "tekst_id" = $id
Avatar billede kasper.h Nybegynder
29. juni 2005 - 10:37 #3
SELECT kba.id AS id FROM konkurrence_bruger_answer AS kba,konkurrence_answer AS ka WHERE kba.answer_id = ka.id AND ka.rigtigt_svar = '1' ORDER BY RAND() LIMIT 1
Avatar billede kasper.h Nybegynder
29. juni 2005 - 10:38 #4
Det var så ikke id men bruger_id du skulle have ud:

SELECT kba.bruger_id AS id FROM konkurrence_bruger_answer AS kba,konkurrence_answer AS ka WHERE kba.answer_id = ka.id AND ka.rigtigt_svar = '1' ORDER BY RAND() LIMIT 1
Avatar billede kasper.h Nybegynder
29. juni 2005 - 10:39 #5
noget i den retning.. jeg er ikke helt med på hvad du præcist vil ;)
Avatar billede martin1000ben Nybegynder
20. juli 2005 - 16:17 #6
Det blev en helt anden løsning, hvor PHP bruges lidt da det blev lidt for indviklet i ren sql.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester