Avatar billede martin1000ben Nybegynder
03. februar 2005 - 23:05 Der er 5 kommentarer og
1 løsning

opstilling af menu udfra database

Hejsa...

Jeg vil gerne lave en menu udfra nogen enum felter i min database.
Det er lidt svært at forklare men jeg prøver alligevel

Jeg har nogen medlemmer hvor det ikke er alle der må noget og sådan.

Min database ser sådan her ud.
member_id (unikt)
nyheder_add
nyheder_delete
nyheder_edit
..
plus 20-30 andre felter

Alle af felterne enum med værdi enten 1 eller 0

Er der en nem måde at lave en listebaseret menu udfra hvert medlem som er logget ind med et link til siden?

Jeg kan selvfølgelig lave en masse if() men findes der en nemmere måde?
Avatar billede dizzim Nybegynder
04. februar 2005 - 00:32 #1
Går ud fra det er noget admin ting du er igang med. Da jeg selv skulle lavet noget lignende, hvor at det kun var nogle members der havde lov til at rette/slette nyheder, lavede jeg en tabel kun med members hvori jeg lavede et felt med auth (authorisation). Jeg lavede så 3 forskellige niveau'er. (1,2 og 3, hvor at 1 havde fuld agang til alt og 3 næsten ingen ting måtte)
Herefter lavede jeg en ny tabel til menuen hvor at der ud over felter med navn og id også var et auth-nummer.
Når brugeren så gik ind tjekkede koden først hans auth nummer, derefter trak den alle de menupunkter ud fra databasen hvor at auth-nummeret var lavere eller lig med brugerens.
Avatar billede martin1000ben Nybegynder
04. februar 2005 - 00:36 #2
Det ville være nemt at lave - men det er en anden bruger der skal kunne ændre ALLE indstillinger uafhængigt af andre indstillinger - fx må en bruger gerne kunne slette nyheder men ikke ændre dem.
Avatar billede Slettet bruger
04. februar 2005 - 12:51 #3
så kan du jo lave en tabel der hedder "rettigheder" og så lave 2 kolonner "navn" og "rang"..

i dit script kan du så sige

$q = mysql_query("SELECT * FROM rettigheder WHERE navn='slet_nyheder' AND brugerid=". $_SESSION['brugerid']) or die(mysql_error());

if(mysql_num_rows($q) == '1') {
echo "Du kan godt slette nyheden";
}
else {
Du kan ikke slette nyheden!
}
Avatar billede Slettet bruger
04. februar 2005 - 12:51 #4
$q = mysql_query("SELECT * FROM rettigheder WHERE navn='slet_nyheder' AND rang=". $_SESSION['rang']) or die(mysql_error());
Avatar billede exposure Nybegynder
05. februar 2005 - 00:43 #5
$SQL = "SELECT * FROM table WHERE id='$id'";
$result = mysql_query($SQL);

$row = mysql_fetch_row($result);

for(i = 1; i < noOfCols; i++)
{
    if($row[i] == 1)
        echo $row[$i];
}
Avatar billede martin1000ben Nybegynder
05. februar 2005 - 01:49 #6
exposure - så simpelt kan det gøres - havde slet ikke tænkt i den bane.
Godt nok er der en del fejl i den - men jeg kan godt se meningen med det.

Til jer andre - jeg ønsker ikke at have flere tabeller i databasen, og det med rang systemet tror jeg ikke at jeg ville kunne bruge.
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