Hallo…
wie der titel sicher schon verrät, habe ich ein problem mit meiner USER-Navigation…
nämlich wollte ich den verschiedenen Usern verschiedene Rechte geben. Und das hat auswirkungen auf die Navigation…
also hab ich in der Tabelle ‘log’ eine Spalte ‘ma’ gemacht (mitglieder art), dieses Feld ist ein Int, mit der Länge 1, nun hab ich bei meiner Abfrage ein problem…
if($rig == ‘6’ or $rig == ‘7’ or $rig == ‘8’ or $rig == ‘9’)
so sieht die Bedingung aus, und hat nicht funktioniert…
ist sie zu lang?
Wie von dir angesprochen ist deine Spalte der Tabelle vom Typ Integer, Vergleiche kannst du also schonmal mit
if ($var = 0) {
....
}
…machen. Ansich kennt PHP zwar keine Datrentypen in dem Sinne, aber zwischen Zahlen und Strings unterscheidet man schon etwas. Ob die Abfrage zu lang ist, kann ich nicht sagen, ich persönlich verwende nicht soviele OR und AND wie du in deiner Abfrage. Da ich den Umgebenden Quelltext nicht kenne, kann ich dir leider auch keine verbindliche Alternative aufzeigen. Schau dir aber mal switch() an, also “select - Case” Anweisungen. Sowas sollte da besser sein, zumal du für jeden Usermode sagen kannst was für ein menü angezeigt werden soll.
Beispiel:
switch($var){
case 0: //normaler User
$menu = array("Link1", "Link2");
break;
case 1: //Admin
$menu = array("Link1", "Link2", "Link3");
break;
default: //alle anderen, bzw Standard
$menu = array("Link1", "Link2");
break;
}
ok, danke euch
ich werds mal mit switch versuchen
e: aber wo muss ich denn den Wert, welcher ich in der Daten bank habe, oder haben sollte, eintragen?
mfg
[quote]Das sieht mir ziemlich nach $_GET aus…
[/quote]
stimmt nicht, hab bei der Navi kein GET verwendet und?
/edit/: jetzt hab ich nen parse error:
[quote]Parse error: syntax error, unexpected T_LNUMBER, expecting T_STRING or T_VARIABLE or ‚{‘ or ‚$‘ in /users/bcg/www/memberin.php on line 77
[/quote]
ihr seht die fehler sicher gleich…
mfg
alles andere würde bedeuten das “rig” eine Function innerhalb der Klasse data ist und einen Wert mit return zurückgeben würde, was ich allerdings nicht glaube.
nochmal was zu Arrays, ich glaube du sprichst sie wie schon bei $data falsch an, richtig müsste es $menu[0] heißen anstelle von $menu->1
alternativ kannste du auch am Ende den Teil so ersetzen:
foreach ($menu as $Menu_element){
echo $Menu_Element;
}
schonmal, geprüft ob $data[“rig”] überhaupt einen Wert Enthällt? Was für einen Datentyp hat die Spalte rig in der Tabelle?
Aktuell angezeigt werden müsste auf alle Fälle der in Default angelegte Link.
cool
jetzt hab ich mich schon gefreut…
nun hab ich 2 menü punkte, von eigentlich 4 oder sogar 7…
echo $menu[0];
hat funktioniert, aber
echo $menu[1];
…
nich…
mfg
E/
äh, jetzt ist es bewiesen…
“rig” har den typ “INT” mit der länge “1” glaub ich…
mfg
//EDIT:
Nochwas:
Du könntest das hier für das Menü verwenden:
$menues=array(
1 => array(
"<a href='xyz'>XYZ</a>'
),
2 => array(
"<a href='xyz'>XYZ</a>'
),
);
$menu=$menues[(is_nummeric($data["rig"]) ? $data["rig"] : 1)];
Damit ersparst du dir 9 mal case X: und break;
ok ich habs mal versucht, doch dann kommt jetzt das hier:
[quote]Warning: Cannot modify header information - headers already sent by (output started at /users/bcg/www/memberin.php:9) in /users/bcg/www/memberin.php on line 39
array(7) { [0]=> string(1) “1” [1]=> string(6) “username” [2]=> string(8) “userpw” [3]=> string(20) “user-e-mail” [4]=> string(19) “last log int” [5]=> string(1) “1” [6]=> string(1) “7” } [/quote]
was sagt mir nun das? hat doch etwas mit dem header-code zu tun…
mfg