borisbaer: Datenbank-Werte mit übergebenen Form-Werten vergleichen

Beitrag lesen

Nein, das liegt daran dass du unter MariaDB noch mit VALUES(value) arbeiten musst, siehe Handbuch – bei MySQL ist der Syntax seit Version 8.0.20 als veraltet eingestuft.

Ja, mein Erklärungsversuch mit bindValue ergibt keinen Sinn.

Du bräuchtest vor dem inneren foreach noch eine Variable (z.B. $gefunden = false;) welche du innerhalb des if-Blocks auf true setzt. Wenn $gefunden dann nach der inneren foreach-Schleife immer noch false ist, gibt es den Datensatz noch nicht und du müsstest ein INSERT ausführen.

Boah, na klar. Mann, vielen Dank, Tobias. Die Lösung ist so einfach und ich habe da sonst was für Verrenkungen angestellt. Das merke ich mir auf jeden Fall fürs nächste Mal. 🙏

So sieht das nun aus:

$isNew = true;

foreach ( $releases as $row )

	if ( $row['id'] === $id )

		$isNew = false;

if ( $isNew === true && $value > 0 )

	$Releases -> create();

else $Releases -> update();

header( 'Location:' . $_SERVER['HTTP_REFERER'] );

Muss nur noch was rein, damit die Reihe wieder gelöscht wird, wenn der aktualisierte Wert 0 entspricht. Aber das geht ja wieder leicht.

Grüße
Boris