/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
MySQL/PHP menu
Fra : Morten Lybecker


Dato : 25-09-05 22:09

Hej jeg har lavet en menu i PHP hvor den skal hente linkene ud fra databasen
men det skal være sådan at der er forskellige brugere rettigheder,
det skal se sådan her ud:

$rang = "adgang=1-2-3, adgang=1-2, adgang=1" //hvis man er logget ind som
admin skal man få vist alle de link hvor adgang = 1-2-3 og 1-2 og 1, men ved
ikke om det er den rigtige måde at gøre det på

Min kode:

require_once ('script.php');
connect();

if ($_SESSION['Rang'] == 1) {
$rang = "`adgang`='1 AND 1-2 AND 1-2-3'";
}
elseif ($_SESSION['Rang'] == 2) {
$rang = "`adgang`='1-2 AND 1-2-3'";
}
elseif ($_SESSION['Rang'] == 3) {
$rang = "`adgang`='1-2-3'";
}
else {
echo "<strong>Din rang er ikke godkent...</strong>";
exit;
}

?>

<table>

<?php
$result0 = mysql_query("SELECT `link`,`navn`,`plads`,`adgang` FROM
`menu` WHERE $rang ORDER BY `plads` ASC");
if (!$result0) print mysql_error();
while ($row9 = mysql_fetch_assoc($result0)) {
print("<tr><td><a
href='index.php?page=".$row9['link']."'>".$row9['navn']."</a></td></tr>");
}

?>

Men er det den rigtige måde at gøre det på??

--
-----------------------------------

Med venlig hilsen
Morten Lybecker
morten@lybecker.com



 
 
Martin (26-09-2005)
Kommentar
Fra : Martin


Dato : 26-09-05 04:10

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Morten Lybecker wrote:
> Hej jeg har lavet en menu i PHP hvor den skal hente linkene ud fra databasen
> men det skal være sådan at der er forskellige brugere rettigheder,
> det skal se sådan her ud:
>
> $rang = "adgang=1-2-3, adgang=1-2, adgang=1" //hvis man er logget ind som
> admin skal man få vist alle de link hvor adgang = 1-2-3 og 1-2 og 1, men ved
> ikke om det er den rigtige måde at gøre det på

Jeg ville lave det med et array.

$rang = array(1,2,3);

if($_SESSION["Rang"] == 1) {
$rang = array_chunk($rang,2);
} elseif($_SESSION["Rang"] == 2) {
$rang = array_chunk($rang,1);
}

// database opkaldet kunne se således ud.
mysql_query("
SELECT *
FROM tabel
WHERE status IN (".implode(",",$rang).")");

// Så behøver du kun 1 tabel til din menu.

// Database strukturen

Menu navn (varchar)
status (enum[1,2,3])

Håber resten siger sig selv.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (MingW32)

iD8DBQFDN2aeAxDV/8Li8MYRAmd/AJ0dtyW7wXi7dhFTjaeZ5A4k9IjHQACfdqTE
HklzJcXqrEyWvvVnvUlT+As=
=OKJK
-----END PGP SIGNATURE-----

Morten Lybecker (27-09-2005)
Kommentar
Fra : Morten Lybecker


Dato : 27-09-05 17:48

Jeg er ikke med på hvad du mener...
Men lige nu har jeg kun det problem at jeg ikke hved hvordan man søger to
værdier i samme kolonne

fx. i min DB har jeg en kolonne der hedder "adgang" og i den vil jeg finde
ved hjælp af mysql string alle dem i kolonnen "adgang" som er "1-2" og
"1-2-3".

--
På forhånd tak
Morten Lybecker

"Martin" <news@natten-i.dk> skrev i en meddelelse
news:43376652$0$87585$edfadb0f@dread16.news.tele.dk...
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Morten Lybecker wrote:
>> Hej jeg har lavet en menu i PHP hvor den skal hente linkene ud fra
>> databasen
>> men det skal være sådan at der er forskellige brugere rettigheder,
>> det skal se sådan her ud:
>>
>> $rang = "adgang=1-2-3, adgang=1-2, adgang=1" //hvis man er logget ind som
>> admin skal man få vist alle de link hvor adgang = 1-2-3 og 1-2 og 1, men
>> ved
>> ikke om det er den rigtige måde at gøre det på
>
> Jeg ville lave det med et array.
>
> $rang = array(1,2,3);
>
> if($_SESSION["Rang"] == 1) {
> $rang = array_chunk($rang,2);
> } elseif($_SESSION["Rang"] == 2) {
> $rang = array_chunk($rang,1);
> }
>
> // database opkaldet kunne se således ud.
> mysql_query("
> SELECT *
> FROM tabel
> WHERE status IN (".implode(",",$rang).")");
>
> // Så behøver du kun 1 tabel til din menu.
>
> // Database strukturen
>
> Menu navn (varchar)
> status (enum[1,2,3])
>
> Håber resten siger sig selv.
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.1 (MingW32)
>
> iD8DBQFDN2aeAxDV/8Li8MYRAmd/AJ0dtyW7wXi7dhFTjaeZ5A4k9IjHQACfdqTE
> HklzJcXqrEyWvvVnvUlT+As=
> =OKJK
> -----END PGP SIGNATURE-----



Michael Zedeler (27-09-2005)
Kommentar
Fra : Michael Zedeler


Dato : 27-09-05 18:31

Morten Lybecker wrote:
> Jeg er ikke med på hvad du mener...
> Men lige nu har jeg kun det problem at jeg ikke hved hvordan man søger to
> værdier i samme kolonne
>
> fx. i min DB har jeg en kolonne der hedder "adgang" og i den vil jeg finde
> ved hjælp af mysql string alle dem i kolonnen "adgang" som er "1-2" og
> "1-2-3".

Så er der i hvert fald fejl i din SQL-streng, for du skriver

"`adgang`='1 AND 1-2 AND 1-2-3'"

imens du muligvis mener

"`adgang`='1' AND adgang='1-2' AND adgang='1-2-3'"

....men den vil ikke virke efter hensigten, så det er nok snarere

"`adgang`='1' OR adgang='1-2' OR adgang='1-2-3'"

Mvh. Michael.

Morten Lybecker (27-09-2005)
Kommentar
Fra : Morten Lybecker


Dato : 27-09-05 18:43

Hvis jeg bruger "`adgang`='1' OR adgang='1-2' OR adgang='1-2-3'" tager den
så alle i kolonnen med de værdier?


--
På forhånd tak
Morten Lybecker

"Michael Zedeler" <michael@zedeler.dk> skrev i en meddelelse
news:Elf_e.69071$Fe7.232712@news000.worldonline.dk...
> Morten Lybecker wrote:
>> Jeg er ikke med på hvad du mener...
>> Men lige nu har jeg kun det problem at jeg ikke hved hvordan man søger to
>> værdier i samme kolonne
>>
>> fx. i min DB har jeg en kolonne der hedder "adgang" og i den vil jeg
>> finde ved hjælp af mysql string alle dem i kolonnen "adgang" som er "1-2"
>> og "1-2-3".
>
> Så er der i hvert fald fejl i din SQL-streng, for du skriver
>
> "`adgang`='1 AND 1-2 AND 1-2-3'"
>
> imens du muligvis mener
>
> "`adgang`='1' AND adgang='1-2' AND adgang='1-2-3'"
>
> ...men den vil ikke virke efter hensigten, så det er nok snarere
>
> "`adgang`='1' OR adgang='1-2' OR adgang='1-2-3'"
>
> Mvh. Michael.



Michael Zedeler (27-09-2005)
Kommentar
Fra : Michael Zedeler


Dato : 27-09-05 19:56

Morten Lybecker wrote:
> Hvis jeg bruger "`adgang`='1' OR adgang='1-2' OR adgang='1-2-3'" tager den
> så alle i kolonnen med de værdier?

Prøv at tage et kig her:

http://www.w3schools.com/sql/default.asp

Mvh. Michael.

Morten Lybecker (27-09-2005)
Kommentar
Fra : Morten Lybecker


Dato : 27-09-05 20:58

Jeg prøvede bare at sætte den ind og det virkede...

Mange tak for hjælpen

--
På forhånd tak
Morten Lybecker

"Michael Zedeler" <michael@zedeler.dk> skrev i en meddelelse
news:tBg_e.69087$Fe7.232605@news000.worldonline.dk...
> Morten Lybecker wrote:
>> Hvis jeg bruger "`adgang`='1' OR adgang='1-2' OR adgang='1-2-3'" tager
>> den så alle i kolonnen med de værdier?
>
> Prøv at tage et kig her:
>
> http://www.w3schools.com/sql/default.asp
>
> Mvh. Michael.



Michael Zedeler (27-09-2005)
Kommentar
Fra : Michael Zedeler


Dato : 27-09-05 21:16

Morten Lybecker wrote:
> Jeg prøvede bare at sætte den ind og det virkede...

....men hvis du gerne vil vide hvorfor, så har du en god adresse at
starte på nu...

Mvh. Michael.

Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409083
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste