Array string in der datenbank updaten

ayhank

Mitglied
Hey leute, bräuchte einen Anschubser wie ich das realisieren soll.

Also ich hab ein string in meiner DB gespeichert, der sich aus einem Array und string zusammen setzt.

Auf jeden fall das Speichern ist kein Problem, aber mal angenommen, ich möchte etwas neues speichern, also etwas hinzufügen. Wie muss ich da vorgehen?

Meiner meinung, kontrolliere ich beides, einmal das eingegebene und das neue, un wenn etwas neues dabei ist, soll das gepeichert werden in der DB.

Könnt ihr mir da helfen ?
 
Wie wärs, statt einem reingestopftem Array eine Tabelle zu machen,
wo jedes Arrayelement eine Zeile ist?

(Normalisierung, erste NF...)
Macht auf Dauer viel weniger Probleme so.
 
nene, die darstellung, ist völlig inordnung, aber das ändern ich zeigs euch mal

PHP:
  <tr><th align="left">Programmier Kentnisse:</th></tr>      
                     <tr><th align="left">Java:<input type="checkbox" name="check[]" value="Java"></td></tr>
                  <tr><th align="left">PHP:<input type="checkbox" name="check[]" value="PHP"></td></tr>
                <tr><th align="left">HTML:<input type="checkbox" name="check[]" value="HTML"></td></tr>
                <tr><th align="left">CSS:<input type="checkbox" name="check[]" value="CSS"></td></tr>
               <tr><th align="left">C:<input type="checkbox" name="check[]" value="C"></td></tr>
               <tr><th align="left">C++:<input type="checkbox" name="check[]" value="C++"></th></tr>
               <tr><th align="left">MySQL:<input type="checkbox" name="check[]" value="MySQL"></th></tr>
                 <tr><th align="left">Assembler:<input type="checkbox" name="check[]" value="GDI"></th></tr>
                   <tr><th align="left">Android:<input type="checkbox" name="check[]" value="Android"></th></tr>
                   <tr><th align="left">Andere Sprachen:</th><th><input type="text" name="asprachen" /></th><td>Eingabebeispiel:Pearl, MSDOS</td></tr>

Das die Eingabe

PHP:
//Inpute auslesen
    $check=$_POST['check'];
    $asprachen =$_POST['asprachen'];
    //ggf $check initialisieren falls nix übergeben wurde
    if(is_null($check)) $check = array();
    //Andere Sprachen auslesen, trimmen und filtern (Leere Strings entfernen)
    $asprachenA = array_filter(array_map('trim', explode(',', $asprachen)));
    
    //Bei beiden Arrays die Keys setzen. Mit strtoupper() sicherstellen dass nicht wegen Gross/Kleinscrheibungsfehler etwas doppelt vorkommt
    if(count($check) > 0){
        $check = array_combine(array_map('strtoupper', $check), $check);
    }
    if(count($asprachenA) > 0){
        $asprachenA = array_combine(array_map('strtoupper', $asprachenA), $asprachenA);
    }
 
    //Und zusammennemen. Bei doppeltem Schlüssel wird nur der aus $check übernommen
    $sprachen = array_merge($check, $asprachenA);

Und hier wird das getrimmt

Die überlegung ist gut mit einem einzigen Array, aber wie sorge ich dafür, das werte die dazu gegeben werden, nicht die anderen löschen ? Wenn ich ein Update befehl mache, oder soll ich dann da lieber ein insert machen?
 
Zurück