Datenbankinhalt => Array

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Datenbankinhalt => Array

    Hallo zusammen,

    ich bin hier "flammneu" und freue mich hier zu sein.

    Sobald ich euch mein problemchen geschildert habe, stelle ich mich im passen thread vor.

    zum probbi:
    Ich trage bis zu drei "kann" Werte, die über eine Checkbox ausgewählt werden können in die Datenbank in eine Spalte ein.
    Bevor ich diese Werte in die DB eintrage frage ich den $_POST wert ab und schreibe den in ein array. Dieses array verschwindet dann ordnungsgemäß in der Datenbank.

    Bis hier her soweit okay.

    Nun möchte ich die Werte wieder auslesen. Dies mache ich mit mit dem fetch_array von mysql. Die nun gewonnene informationen sind also in dem array enthalten.
    Also packe ich die Inhalte mit:

    Quellcode

    1. $string= explode(", ", $datenbank[daten]);

    Soweit auch alles bestens, alles klappt.

    Nun kommt mein "verständnis" Problem.

    Ich möchte auf der Seite die Checkboxen die ich vorher in die DB eingtragen habe, mit den Werten aus der DB vorbelegen. Dazu nutze ich

    Quellcode

    1. <input name=a_daten[] value=Hund type=checkbox"; if($string[0]=="Hund") echo " checked"; echo ">Hund
    2. <input name=a_daten[] value=Katze type=checkbox"; if($string[1]=="Katze") echo " checked"; echo ">Katze
    3. <input name=a_daten[] value=Maus type=checkbox"; if($string[2]=="Maus") echo " checked"; echo ">Maus


    Wie ihr seht steht hier der arrayinhalt [0]-[2] als ifbafrage.
    So, wenn ich nun aber keine drei Werte, sondern nur zwei in die DB schreibe, dann ist meine ifabfrage schon dahin. denn es hört ja bei [1] auf.

    Nun meine Frage:
    Wie kann ich das array überprüfen, damit ich die checkboxen richt vorbelegen kann. Irgendwie fehlt mir gerade der Brainsaft dafür.

    ich danke euch für das lesen.
    chris
  • Ja das ist richtig.

    aber mein code ist anders aufgebaut.

    ich müsste wieder schleifen setzen, damit das Formular, womit eingetragen wird, auch beim nächsten aufruf die vorbelegten Checkboxen korrekt anzeigt. Das sind ja ein und dasselbe formular.

    habe ich nen denkfehler? hier stehe ich echt im wald. ;)
  • das habe ich,

    Der code funzt super: aber siehe selber was ich meine:

    Quellcode

    1. $mdc = mysql_query("SELECT * FROM xyz WHERE id = '".$usrd[id]."'");
    2. $usrd = mysql_fetch_array($mdc);
    3. $check1 = explode(", ", $usrd[inhalt]);
    4. $vorbelegt = explode(", ", $usrd[inhalt]);
    5. if($usrd[1]=="mw"){
    6. foreach($check1 as $auswahl) {
    7. $checked = in_array($auswahl, $vorbelegt) ? 'checked="checked"' : '';
    8. echo '<input type="checkbox" ... '.$checked.' />'.$auswahl;
    9. }
    10. echo genMsg('lightbulb','xxx ');
    11. echo "<form action=index.php enctype=multipart/form-data method=post onsubmit=\"document.getElementById('submit').disabled=true;document.getElementById('submit').value='Bitte warten...';\"><input type=hidden name=d value=login><input type=hidden name=s value=profil><input type=hidden name=o value=k><table border=0 cellspacing=0 cellpadding=5 align=center>";
    12. HIER STEHT NOCH FORMTEXT
    13. DAS IST DAS CHECKBOXFELD
    14. echo"<tr><td>Suche Dates mit:</td><td><input name=a_dates[] value=Katze type=checkbox"; if($auswahl=="Katze") echo " checked"; echo ">Katze<input name=a_dates[] value=Hundtype=checkbox"; if($auswahl=="Hund") echo " checked"; echo ">Hund<input name=a_dates[] value=Maus type=checkbox"; if($auswahl=="Maus") echo " checked"; echo ">Maus</td></tr>";
    15. HIER folgt WEITER FORMTEXT
    Alles anzeigen
  • ähm? wie soll ich die ersetzen?

    Wenn ich das allererste mal die seite aufrufe, dann sind die checkboxen leer (nicht ausgewählt)
    (wie soll ich dann die zeile 18 durch das in_array ersetzen? dies wäre ja leer und somit würde keine checkbox angezeigt)

    deswegen muss ich ja sehen das ich es in ne schlife packe. wie die ifschleife die schon drinsteht. Leider funkt die auch net so wie ich will.. alles käse.