Ich bastle grade anner Datenbank und einer dazugehörigen Seite rum.
Jede Farbnummer wird noch unterteilt in 20 Farbtiefen.
SH 100-20 ist schwarz.
SH 100-19 ist nicht ganz so schwarz.
SH 100-1 ist hellgrau.
Ich habe ein Formular, in dem ich Werte eingebe: ID (Primary), Farbnummer, Farbtiefe, Hex-Wert der Farbe (Nach html-Schema: #AABBCC) und noch anderes mehr.
Dann wird das in der DB gespeichert (Funktioniert)
Dann habe ich eine Ausgabe:
Da sollen mir die Daten zu der ID angezeigt werden. (Funktioniert)
Jetzt habe ich eine Anzeige, in der ich alle Farbnummern und wichtigen Daten, sowie die dazugehörigen Farbtiefen anzeigen lassen will.
[ATTACH=JSON]{"alt":"Klicke auf die Grafik f\u00fcr eine vergr\u00f6\u00dferte Ansicht Name: farbanzeige.PNG Ansichten: 0 Gr\u00f6\u00dfe: 32,3 KB ID: 123924","data-align":"none","data-attachmentid":"123924","data-size":"large"}[/ATTACH]
Und nu habe ich das Problem, das ich keinen Schimmer habe, wie ich das machen soll, daß ich beim absenden des Formulares den Hex-Wert in die entsprechenden Farbtiefen-Felder derselben Farbnummer übergeben kann.
Die DB sieht derzeit so aus:
[ATTACH=JSON]{"alt":"Klicke auf die Grafik f\u00fcr eine vergr\u00f6\u00dferte Ansicht Name: farbanzeige2.PNG Ansichten: 0 Gr\u00f6\u00dfe: 151,3 KB ID: 123925","data-align":"none","data-attachmentid":"123925","data-size":"large"}[/ATTACH]
Die übergabe der Formularwert in die DB sieht grade so aus:
// prepare() (prepare = aufbereiten) bereitet die Anweisung für die Ausführung vor.
$update = $db->prepare("UPDATE `farben`
SET
`Hex_Wert` = :Hex_Wert,
`Lab_Wert` = :Lab_Wert,
`Farbname` = :Farbname,
`Farbzusammensetzung` = :Farbzusammensetzung,
`Notizen` = :Notizen,
`Bilder`= :Bilder
WHERE `ID` = :id");
// Die Platzhalter werden über ein assoziatives Array mit dem Inhalt der POST-Variablen übergeben.
// $update->execute() führt die Anweisung dann aus.
if ($update->execute( [':id' => $_POST["ID"],
':Hex_Wert' => $_POST["Hex_Wert"],
':Lab_Wert' => $_POST["Lab_Wert"],
':Farbname' => $_POST["Farbname"],
':Farbzusammensetzung' => $_POST["Farbzusammensetzung"],
':Notizen' => $_POST["Notizen"],
':Bilder' => $new_path ])) {
echo '<p>▷ Der Datensatz wurde überschrieben.</p>';
if (!empty($filename) ) {//wenn kein bild gewählt ist, vergiss das einfach
echo 'Bild erfolgreich hochgeladen: <a href="'.$new_path.'">'.$new_path.'</a>';
}
}
/*else {
// SQL-Fehlermeldung anzeigen.
print_r($update->errorInfo());
}*/
}
Alles anzeigen
Aber... wenn ich eine Farbe update. DIe hat meinetwegen die Farbnummer SH100 und die Farbtiefe 10.
Dann müssen alle Farbtiefe_10-Felder, wenn sie die Farbnummer SH 100 haben, in der DB mit dem gesendeten Hex_Wert auch upgedatet werden.
Ich bräuche also eine magische funktion, die mir macht:
Stecke mir die Farbtiefe der grade abgesendeten ID in eine variable und stecke den Wert dieser Variablen dann in genau das Feldtiefe_xx-Feld, das zu dieser Farbnummer passt.
Und wie das dann mit prepare und execute funktionieren soll, hab ich natürlich auch keinen Schimmer.