Avatar billede simon_jacobsen Nybegynder
24. august 2006 - 18:34 Der er 4 kommentarer og
1 løsning

mysql forespørgsel på ukendte kolonnenavne

Jeg er ved at lave en forespørgsel i mysql der skal hente alle navne på kolonner hvor der forekommer et 1-tal i en bestemt række.

Altså jeg har en tabel der ligner denne :

navn    | id1 | id2 | id3 | id4 |id5 | id6
og input der ligner det her :
bruger  |  0  |  1  |  0  |  1  |  0 |  0
og jeg kan finde linien det drejer sig om ved at søge efter navnet bruger, men jeg skal vide hvad kolonnerne hedder hvor der står 1 ud for, kolonnerne (id1, id2, id3 ...) er oprettet løbene så jeg kender ikke antallet af kolonner, men jeg skal finde det tal der står ud for id i de kolonner, som har et 1-tal i den række jeg finder.

Håber nogen kan hjælpe :)
Avatar billede pidgeot Nybegynder
24. august 2006 - 18:47 #1
Sådan her kan det i hvert fald gøres:

$foundnames=Array();
$q=mysql_query('SELECT * FROM...');
$r=mysql_fetch_assoc($q);
foreach ($r as $name => $value)
{
  if ($value==1)
    $foundnames[]=$name;
}

Så indeholder $foundnames et array med alle de feltnavne hvor der var et 1-tal som værdi.
Avatar billede Slettet bruger
25. august 2006 - 01:33 #2
pidgeot har givet den løsning, du bad om, så nu vil jeg komme med et input til en bedre løsning.

Ny tabel med felterne:
navn
felt
vaerdi

Query: SELECT felt FROM tabel WHERE navn='bruger' AND vaerdi=1

Eventuelt kan navn og felt være int, som peger på id i andre tabeller.
Avatar billede pidgeot Nybegynder
25. august 2006 - 07:44 #3
Enig - den der er bestemt at foretrække.
Avatar billede simon_jacobsen Nybegynder
25. august 2006 - 11:41 #4
hmm ja kan godt se det ikke er en helt optimal opstilling af min tabel ... men smid lige et svar så må jeg lige udtænke en struktur der er bedre :)
Avatar billede pidgeot Nybegynder
25. august 2006 - 16:06 #5
Strukturen er nem nok - du skal bare bruge det sandbox har givet dig. :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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