ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
423
423
EMPFEHLEN
-
Hallo zusammen,
jetzt hab ich mich schon durch diverse Foren gelesen und nirgends auch nur annähernd eine Lösung gefunden. Vielleicht ist auch mein Objektorientiertes Denken Schuld...
Nun ich hab eine Datenbank in der Name und E-Mail Adresse gespeichert ist,
zusätzlich gibt es je Datensatz ein Feld "Berechtigung" hier "rechte" genannt:
Es gibt diese drei Rechte: schreiben, lesen, beides
Über Radiobuttons kann ich je Datensatz die Besechtigung einstellen und über SUBIT erwartet ein anderes Formular die Werte des Radiobuttons als Array. So weit so gut.
Hier der Radio-Button Quelltext: (der natürlich in einer "MySQL Abfrage Schleife läuft" und die Buttons vorselektiert)
Soweit ist ja alles gut, wie man sieht wird der Primärschlüssel der Datenbank(hier ID genannt ) gleich als Index für das Feld im Array verwendet.PHP-Code:echo "<input type='radio' name='radio[".$row["ID"]."]' value='lesen'";
if($row["recht"]=='lesen'){ echo "checked";};
echo ">";
echo "<input type='radio' name='radio[".$row["ID"]."]' value='schreiben";
if($row["recht"]=='schreiben'){ echo "checked";}; echo ">";
echo "<td><input type='radio' name='radio[".$row["ID"]."]' value='beides"; if($row["recht"]=='beides'){ echo "checked";}; echo ">";
Somit bekommt beispielsweise Datensatz 743 auch das Feld 743 im Array
Gibt es in der DB Beispielsweise nur 5 Datensätze jechoch schon mit den IDs 12, 18 und 94, so besteht das Array nachher auch nur aus drei Feldern jedoch mit den Indizes 12, 18 und 94, somit bleibt mir die ID also eideutig erhalten.
Prüfen kann man das mit
Nun besteht beim zurückschreiben in die Datenbank das Problem, dass ich beispielsweise in einer foreach Schleife keinen Eindeutigen Index mehr habe, dem ich den Wert "lesen" zuordnen kann.PHP-Code:echo "<pre>";
print_r($_POST);
echo "</pre>";
Hier die schleife zum schreiben in die DB:
Das Probelm ist solange keines, bis Lücken in der ID der Datenbank entstehen, beispielsweise durch entfernen eines Datensatzes.PHP-Code:$increment=1
foreach($radio as $tempvar){
mysql_query("UPDATE berechtigungen SET recht='".$tempvar."' WHERE ID='".$increment."'");
$increment=$increment+1;
}
Was ich bräuchte wäre eine Art Mechanismus, mit dem ich $tempvar nicht nur nach dem Wert fragen kann, sondern auch dem Index zu dem er gehört.
In Meinem Kopf schwirrt solch eine Idee:
ID = $tempvar.index
Wert= $tempvar
Wie könnte ich diese Problematik anpacken um wieder an den Index zu kommen?
Besten Dank
Roland Keller
-
Schau dir mal die Möglichkeiten des foreach-Kontrollkonstrukts genauer an.
Markus Wulftange
-
Klasse, Super Danke!
Manchmal hat man echt nen "Knopf im Hirn"
So einfach kanns gehen...PHP-Code:foreach($radio as $index => $tempvar){
mysql_query("UPDATE berechtigungen SET recht='".$tempvar."' WHERE ID='".$index."'");
}
Dank und Gruß
Roland
Ähnliche Themen
-
Mp3 abspielen und Id eines Listbox Elementes
Von eternitysoft im Forum .NET Windows FormsAntworten: 5Letzter Beitrag: 04.05.08, 00:58 -
Index (Position) eines Elementes in einem Array ausgeben
Von Grille im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 24.01.08, 12:40 -
<logic:iterate> --> Selektieren eines Elementes
Von klaeuschen41 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 1Letzter Beitrag: 30.08.06, 02:02 -
Grundfarbe eines Elementes ändern?
Von rain7 im Forum PhotoshopAntworten: 5Letzter Beitrag: 30.03.06, 17:04 -
Das Attribute Titel eines Elementes per CSS anpassen
Von sono im Forum CSSAntworten: 2Letzter Beitrag: 12.12.05, 23:49





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren