10 Jahre
Gespräch vereinbaren
Werbung
FeatValue
Das Kundenportal für Agenturen und Freelancer
Integriert sich in das bestehende Projektmagement-System
Kostenlos registrieren

Speicherung Daten DBManager Teil 1 (CMS)

Code & Blog Logo

Code & Blog Logo

In unseren DBManager des selbst erstellten CMS können wir bereits einen Datensatz auswählen und ihn in einem Formular anzeigen. Nun müssen wir ihn nur noch Speichern. Dazu ist heute der erste Teil dran. Es dreht sich heute alles um admin/includes/tableitem-edit.php.

Um die Tabelle in der die Datensätze stehen kommt nun ein Form-Tag. Damit wir das ganze auch absenden steht nun in der Tabelle ein Submit-Button:

<form action="<?PHP echo "/admin/index.php?page=tableitem-edit&table=".$_GET['table']."&position=".$_GET['position']; ?>" method="POST">
  <table>
    <?PHP foreach($columns as $column){ ?>
      <tr>
        <td><?PHP if($column['Key']) echo "<img src="/system/images/icons/key.png" />"; ?></td>
        <td><?PHP echo $column['Field']; ?></td>
        <td><?PHP echo $column['Type']; ?></td>
        <td><input onChange="validate('<?PHP echo $column['Field']; ?>',
                 '<?PHP echo $column['Type']; ?>',this.value)"
               name="<?PHP echo $column['Field']; ?>" 
               value="<?PHP echo $data[$column['Field']]; ?>"
                      <?PHP if(getColumnSize($column['Type']))
                      echo " maxlength="".getColumnSize($column['Type']).""";?>></td>
      </tr>
    <?PHP } ?>
    <tr>
      <td></td>
      <td></td>
      <td></td>
      <td><input name="save" type="submit" value="Speichern" /></td>
  </table>
</form>

Wenn nun ein Datensatz gespeichert werden soll, merken wir, dass der Parameter $_POST[’save‘] existiert. Hier durchlaufen wir in einer Schleife alle Spalten und weisen die neuen Werte zu, so sind sie in der Ansicht schon erneuert. In die Variable $olddata muss der alte Datensatz gespeichert werden, damit wir auch später wissen, welcher Datensatz geändert wurde.

Das sieht dann so aus:

$data = mysql_fetch_assoc($res);

  if($_POST['save']){
    $olddata = $data;
    foreach($data as $key=>$value){
      if(isset($_POST[$key])){
        $data[$key] = $_POST[$key];
      }
    }
    //Hier folgt nachher die Änderung in der DB
  }

Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.

Kommentare

aioon schrieb am 10.10.2009:

Wäre es nicht übersichtlicher und sauberer, hidden fields zu benutzen? anstatt das alles in eine action zu packen? :) ?page=tableitem-edit&amp;table=".$_GET['table']."&amp;position=".$_GET['position']; ?&gt; ansonsten ganz nett :)

aioon schrieb am 10.10.2009:

irgendwas ging daneben...

Stefan Wienströer schrieb am 10.10.2009:

Ich hatte es vor, dass die Datenbankfelder weitestgehend von den GET-Parametern getrennt werden, damit nicht alle in der Schleife durchgelaufen werden müssen.

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Cookie-Einstellungen

Helfen Sie dabei, uns noch besser zu machen. Wir nutzen Cookies und ähnliche Technologien, um die Website auf Ihre Bedürfnisse anzupassen. Zur Datenschutzerklärung

Auswahl speichern