Maede: Ausgabe individuell behandeln

Hallo zusammen

Ich habe folgende PhP-Ausgabe:

  
$MTdb3 = mysql_query("SELECT * FROM metatags");  
while ($MTTrow = mysql_fetch_assoc($MTdb3)) {  
  echo "<tr>";  
  echo "<td class=\"db_code\">";  
  echo $_POST['MTTid'] = $MTTrow['MTT_ID'];  
  echo "</td>";  
  echo "<td class=\"db_code\">";  
  echo $MTTrow['MTT_code'];  
  echo "</td>";  
  echo "<td class=\"db_status\">";  
  echo "<select name=\"MTT_select\" onchange=\"this.form.submit();\">";  
  if ($MTTrow['MTT_status'] == 'aktiviert') {  
    echo "<option>aktiviert</option>";  
    echo "<option>deaktiviert</option>";  
  } else {  
    echo "<option>deaktiviert</option>";  
    echo "<option>aktiviert</option>";  
  }  
  echo "</select>";  
  echo "</td>";  
  echo "<tr>";  
}  

Soweit sogut. Ich möchte jedoch, wenn man im SELECT-Tag avtiviert oder deaktiviert auswählt ein mysql_query("UPDATE metatags SET MTT_status = '$_POST[MTT_select]' WHERE MTT_ID = '$_POST[MTTid]'");-Abfrage stattfindet, damit sich der bereits vorhandene Wert in der DB durch den im SELECT-Tag ausgewählten Wert ersetzt.

Ebenfalls zu beachten, in der DB sind mehrere Datensätze vorhanden, dass heisst es werden mehrere SELECT-Felder generiert, da ich Datensatz für Datensatz auslese. Sollte man den Wert in einem SELECT-Feld ändern, sollten die restlichen jedoch nicht davon betroffen sein.

Das ganze sollte z.b. so ausehen, ganz grob:

-------------------------------
|ID| Meta        |Status      | //Überschrift
-------------------------------
|22| author      |aktiviert   | //Datensatz 1
|32| title       |deaktiviert | //Datensatz 2
|24| language    |deaktiviert | //Datensatz 3
|28| description |aktiviert   | //Datensatz 4
-------------------------------

Ich war leider bis jetzt erfolglos mit meinem Vorhaben, kann mir jemand helfen?

mfg: Maede

  1. Hi,

    Ich habe folgende PhP-Ausgabe:
    [...]
    Soweit sogut.

    So weit, so übel.

    Keinerlei Fehlerbehandlung, anfällig für XSS, chaotische Vermischung von PHP-Code und HTML-Ausgaben.

    Dazu noch ein Gebrauch von SELECT/OPTION, welcher der Erwartung des Nutzers widerspricht. Warum änderst du die *Reihenfolge* der OPTIONs, anstatt einfach eine OPTION vorzuselektieren?

    Ich möchte jedoch, wenn man im SELECT-Tag avtiviert oder deaktiviert auswählt ein mysql_query("UPDATE metatags SET MTT_status = '$_POST[MTT_select]' WHERE MTT_ID = '$_POST[MTTid]'");-Abfrage stattfindet, damit sich der bereits vorhandene Wert in der DB durch den im SELECT-Tag ausgewählten Wert ersetzt.

    Und wo du haben Problem?

    Ebenfalls zu beachten, in der DB sind mehrere Datensätze vorhanden, dass heisst es werden mehrere SELECT-Felder generiert, da ich Datensatz für Datensatz auslese. Sollte man den Wert in einem SELECT-Feld ändern, sollten die restlichen jedoch nicht davon betroffen sein.

    Dann überlege dir, wie du den Datensatz, den das SELECT-Feld betreffen soll, identifizierbar machst, und wie du diese Identifizierung mit der anderen Information (aktiviert/deaktiviert) bündelst.

    (Und ob für den Wechsel zwischen genau zwei Zuständen ein SELECT-Feld die beste Möglichkeit ist, solltest du auch noch überlegen. Was spricht gegen die Nutzung einer Checkbox?)

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]