000
20.04.2004, 18:48
Horat
|
jo hallo,
ich hab hier ein kleines Problem mit zwei zweidimensionalen Arrays. Und zwar besitzt das erste array in der ersten Dimension 5 Elemente, die die Kategorien angeben. Jede Kategorie hat unterschiedlich viele Elemente (durchschnittlich 10). Dieses erste Array enthält die spaltennamen für ne MySQL-tabelle. Das zweite Array ist genauso aufgebaut. Nur enthält es die HTML-Darstellungen für ein Formular, das jene MySQL Tabelle updated.
Für das Formular muss ich jetzt das Array durchlaufen, um 1. die Eingabefeldnamen (aus erstem Array) und 2. die HTML-Darstellungsstrings (aus zweitem Array) zu bekommen. Das Problem besteht jetzt darin, dass wenn ich das erste Array durchlaufe ich nicht weis welches Element das ist und was das passende Element aus dem zweiten Array ist. (hoffe bis hierhin konnte mir jeder folgen. Wenn nicht bidde fragen =)
Ich bedanke mich für Hilfe
mfG <--
--
Bild Blog <--
|
|
Profil || Suche
|
001
20.04.2004, 21:21
Small_Player
|
und ich sage meinen Freunden ich kann PHP, habe schon diverses damit gemacht... aber ich merke grade ich habe null ahnung*g*
Da ich das alles mit den Arrays nie verstanden ahbe kann ich dir so nicht helfen.
sach mal was du überhaupt machen willst, evtl geht das mit ner Datenbank alles einfacher...
--
Agamemnon-Hellmapper "Mithilfe der Dreifaltigkeit aus Suchfunktion, Tutorials und Hirn." www.MicHappe.de
|
|
Profil || Suche
|
002
20.04.2004, 21:41
theDon
|
<?php foreach($array1 as $key => $value) { do_stuff_with($array2[$key]); } ?>
--
\o tanz den naziprau! o/
And more than ever, I hope to never fall, Where enough is not the same it was before
|
|
Profil || Suche
|
003
20.04.2004, 22:36
Horat
|
@theDon: das habe ich schon überdacht aberich komme nicht so auf ne Lösung, weil ich eigentlich keine Funktion schreiben kann, die das zweite array bearbeitet, da kein key des erstens Arrays mit dem anderen übereinstimmt.
ich kann ja mal erklären was ich machen will: also ich möchte die Zugriffsrechte der admins für ne website machen. Ich habe ne tabelle, die für jeden user die Zugriffsrechte speichert (á la 1/0 in nem string). Dann muss ich für das Verwaltungsprogramm natürlich noch ein Formular machen, dass dies ändert. Somit habe ich diese beiden arrays definiert. Das erste enthält halt die spaltennamen (im übertragenen Sinne), die in Kategorien unterteilt sind. Also z.b.: $arr1['news']['2'] = 'cancreatenews'; wäre ein element dieses arrays. Dann durchlaufe ich mit foreach() das array so, dass ein Array mit den Zugriffsrechten für den aktuellen benutzer erzeugt wird.
Das zweite array enthält, gleich aufgebaut, anstatt den spalten- und kategorienamen Strings, um das in dem Formular darzustellen. Kein key ausser die zahlenwerte in der zweiten dimension stimmt mit dem anderen array überein. Im formular durchlaufe ich das array genauso wieder. Aber ich kann ja nicht wissen welchen string ich nun ausgeben muss, wenn ich bei dem oben genannten beispiel angekommen bin
is kompliziert, i know =/
--
Bild Blog <--
|
|
Profil || Suche
|
004
21.04.2004, 01:23
CN
|
das mit den zugriffsrechten würde ich in nem int speichern und dann jeweils bestimmte bits setzen, so hab ich das letztens gemacht wirkt mir insgesamt bisschen "zuvielaufeinmal" + kompliziert erklärt
wie wärs wenn du mal code zeigst..
--
|
|
Profil || Suche
|
005
21.04.2004, 14:00
Chronial
|
Also das hab ich jetzt auch nicht so recht verstanden Du hast also einmal ein array $userrights['news'] = array('cancreatenews','condeletenews','canfuckme'); $userrights['forum']= array('candeleteposts','cancreatepolls','canfuckforumusersunder13');
soweit noch verstanden, aber wie sieht jetzt das 2. Array aus? so? $userrights['neuigkeiten'] = array('darf news erstellen','darf news löschen','darf mich ficken'); $userrights['diskusionsboard']= array('darf Posts löschen','Darf Wahlen anzetteln','Darf Forenuser unter 13 sexuel belästigen');
Also wenn das so ist, geht das nicht wirklich.
CN, für sowas würde ich SET nehmen. Braucht genauso viel Speicherplatz, ist aber wesentlich flexibler (und der Code wird nebenbei auchnoch übersichtlicher). Das erste mal hab ich das auch mit nem int und bits gemacht, bin aber bald an die Granzen dieser Technik gestoßen ;).
back to topic: SeeEl - es wird zwar eine Möglichkeit geben, das zu lösen, aber wenn du das so läst, hast du bald wieder ein anderes Problem. Daher würde ich dir eine Umgestaltung deines rechtesystems empfehlen. Und zwar so: In der Datenbank ein Feld für die Rechte vom Typ SET (erkärung dazu, siehe MySQL anleitung ;) oder für jede Sektion ein extra Feld. Damit kannst du die rechte dann schnell und sauber per explode in ein array laden. dadurch erhälst du mit 2 codezeilen dein 1. Array. Und dann machst du dir noch ein Array mit den zugehörigen Bezeichnungen. Das könnte dann so aussehen. $rightnames['news']['NAME'] = "neuigkeiten"; $rightnames['news']['create'] = "News erstellen"; $rightnames['news']['edit'] = "News bearbeiten"; $rightnames['forum']['NAME'] = "Userboard"; $rightnames['forum']['createPoll'] = "Umfrage anzetteln"; $rightnames['forum']['deleteTopic'] = "Thema löschen";
Damit sollte die Namensauflösung uach kein problem mehr darstellen.
--
"tsuji-giri" (japanisch) - ein neues Schwert an einem Passanten ausprobieren
|
|
Profil || Suche
|
006
21.04.2004, 16:46
Horat
|
mmh jo thx das wäre ne idee
werde dann das system mal n bissle umstellen
--
Bild Blog <--
|
|
Profil || Suche
|