|
| 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.
| |
|
|