12. november 2005 - 13:15Der er
11 kommentarer og 1 løsning
find værdi i database-array
Jeg har en variabel $current og et felt i min database ved navn gruppe
Værdien i $current er numerisk (1, 2, 3 osv.) og indeholder KUN 1 tal af gangen, brugeren kan så skifte det efter behov.
Værdien i gruppe er numerisk (1,2,3,5,8) og indeholder en RÆKKE tal sepereret med , (komma)
Har fået fortalt at det ikke er "lovligt" at benytte , til seperator - men har ikke kunne hitte ud af hvad jeg så skal bruge ??
Problemet er at jeg skal hive menu, nyheder, links, artikler m.m.m. ud af databasen baseret på hvad der er angivet i $current....
eksemepl : brugeren har værdien 2 i $current så vil jeg hive ALLE de menupunkter ud hvor der i feltet gruppe indgår tallet 2 har forsøgt med : $get_menu_1 = sql("select * from menu where aktiv = 1 AND parent = 0 AND gruppe IN ($current) order by sort");
ovenstående retunere intet, og fjerner jeg () omkring $current giver den blot en fejl på noget efterfølgende kode....
Hvordan skal jeg sætte det op for at det vil fungere ??
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
bromer -> det ser ud til at fungere... men jeg har også nogle punkter hvor der ingen begrænsning er på, dvs feltet gruppe IKKE indeholder noget som helst, disse skal også med ud, har forsøgt at tilføje følgende
$get_menu_1 = sql(sprintf("SELECT * FROM menu WHERE aktiv = 1 AND parent = 0 AND gruppe REGEXP '(^|,)%d($|,)'",$current)" OR gruppe = ''");
Har fikset det .... tænkte mig ikek lige om... kunne jo bare sætte den ind FØR og så bruge OR op til regexp tingen :-)
Den ser nu sådant her ud og funger : $get_menu_1 = sql(sprintf("SELECT * FROM menu WHERE aktiv = 1 AND parent = 0 $pubadm AND gruppe = '' OR gruppe REGEXP '(^|,)%d($|,)'",$current));
og så alligevel funger det ikek helt optimalt... vil gerne have tilføjet en order by sort
men umidlbart kan jeg ikke blot indskrive dette uden fejl, har førsøgt med ... AND gruppe = '' OR gruppe REGEXP '(^|,)%d($|,)'",$current)'order by sort'); ... AND gruppe = '' OR gruppe REGEXP '(^|,)%d($|,)'",$current)"order by sort"); ... AND gruppe = '' OR gruppe REGEXP '(^|,)%d($|,)'",$current) order by sort);
$get_menu_1 = sql(sprintf("SELECT * FROM menu WHERE aktiv = 1 AND parent = 0 $pubadm AND gruppe = '' OR gruppe REGEXP '(^|,)%d($|,)' ORDER BY sort",$current));
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.