echo $begrüßung;
wenn ich das nun vorliegen habe: 101001 und ich das dritte Bit löschen will, mache ich:
Bits zählt man im Allgemeinen von rechts, weil die Wertigkeit nach links zu größer wird. (Rechts? Links? Unklar? Das rechte Bit muss vorhanden sein, die links stehenden immer nur wenn die rechten Bits nicht mehr ausreichen, um einen Wert darzustellen.)
Um das x. Bit zu erhalten, kann man das 1. Bit setzen (also das niederwertigste) und es x -1 Mal nach links schieben. Dieser Wert bildet die Maske, die gegebenenfalls noch bitweise invertiert verden muss.
update Tabelle set Erlaubnis=Erlaubnis>>3 & 0;
das dritte Bit setzen so:
update Tabelle set Erlaubnis=Erlaubnis>>3 | 0;
Das sieht nicht richtig aus.
So könnte ich dann mehrere bit gleichzeitig setzen:
Bsp. Bit 2 und 3 löschen
update Tabelle set Erlaubnis=Erlaubnis & x00xxx;
setzen:
update Tabelle set Erlaubnis=Erlaubnis | x11xxx;
Das sieht schon besser aus, abgesehen von der Zählweise. Aber statt der x musst du im ersten Fall 1 nehmen und im zweiten 0.
Könnte man in einer Query zweimal das gleiche Feld updaten?
Nein, aber ...
Sprich, Bsp. ein bestimmtes Bit setzen und ein anderes löschen?
... du kannst mehrere Rechenoperationen nacheinander ausführen. x = x | y & z
echo "$verabschiedung $name";