tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
423
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    rmkeller rmkeller ist offline Grünschnabel
    Registriert seit
    Feb 2004
    Beiträge
    2
    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)

    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 ">"
    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.
    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
    PHP-Code:
        echo "<pre>";
        
    print_r($_POST);
        echo 
    "</pre>"
    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.

    Hier die schleife zum schreiben in die DB:
    PHP-Code:
    $increment=1
    foreach($radio as $tempvar){
            
    mysql_query("UPDATE berechtigungen SET recht='".$tempvar."' WHERE ID='".$increment."'");
           
    $increment=$increment+1;

    Das Probelm ist solange keines, bis Lücken in der ID der Datenbank entstehen, beispielsweise durch entfernen eines Datensatzes.

    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
     

  2. #2
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Schau dir mal die Möglichkeiten des foreach-Kontrollkonstrukts genauer an.
     
    Markus Wulftange

  3. #3
    rmkeller rmkeller ist offline Grünschnabel
    Registriert seit
    Feb 2004
    Beiträge
    2
    Klasse, Super Danke!
    Manchmal hat man echt nen "Knopf im Hirn"

    PHP-Code:
    foreach($radio as $index => $tempvar){ 
            
    mysql_query("UPDATE berechtigungen SET recht='".$tempvar."' WHERE ID='".$index."'"); 

    So einfach kanns gehen...


    Dank und Gruß
    Roland
     

Ähnliche Themen

  1. Mp3 abspielen und Id eines Listbox Elementes
    Von eternitysoft im Forum .NET Windows Forms
    Antworten: 5
    Letzter Beitrag: 04.05.08, 00:58
  2. Index (Position) eines Elementes in einem Array ausgeben
    Von Grille im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 24.01.08, 12:40
  3. <logic:iterate> --> Selektieren eines Elementes
    Von klaeuschen41 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 1
    Letzter Beitrag: 30.08.06, 02:02
  4. Grundfarbe eines Elementes ändern?
    Von rain7 im Forum Photoshop
    Antworten: 5
    Letzter Beitrag: 30.03.06, 17:04
  5. Antworten: 2
    Letzter Beitrag: 12.12.05, 23:49