Probleme mit Binärzahlen

dennis-sauer

Erfahrenes Mitglied
Hallo zusammen,

folgendes Problem habe ich:

Ich habe eine Liste von Zügen, diese verkehren natürlich nicht an jedem Tag, bisher sah das wie folgt aus 1111100 Wobei jede Zahl für einen Tag steht und die 1 für fährt und die 0 für fährt nicht.
In der Datenbank steht dann nur noch eine Zahl:

Mo 1 = 64
Di 1 = 32
Mi 1 = 16
Do 1 = 8
Fr 1 = 4
Sa 0 = 0
So 0 = 0

Somit steht in der DB im Feld tagplan eine 124.

Mir bereitet die Abfrage jetzt Probleme, sprich heute ist Dienstag, zeige somit alle Züge an die am Dienstag fahren...

Derzeit sieht mein Code folgendermaßen aus:

PHP:
// Query database
$sql = "SELECT id, ankunft, abfahrt, zugnummer, gattung, l_name, l_nummer, von, nach, gleis, wasa, info, tagplan
      FROM tagplan 
      WHERE tagplan & 2 = 2";
$results = mysql_query($sql,$conn);
 
if(!$results || empty($results))   {
      echo "Error querying data!"; die();
}
 
// Display rows
while($row = mysql_fetch_array($results))
{
      echo "Zugabfahrt: ".$row['abfahrt'];
}

?>

Die 2 ist natürlich nur ein Beispiel...

Gruß

Dennis
 
Also das Problem ist das ich nicht genau weiß wie ich das Abfragen soll. Dort steht jetzt als Bsp eine 2 aber wie frage ich das nun ab?

Am Dienstag sollen nur die Züge gezeigt werden, die am Dienstag fahren, ich weiß nicht was ich dort stehen habe muss.

Des Weiteren weiß ich nicht genau wie das Feld sein muss in dem die Werte stehen derzeit ist es als Textfeld, das ist aber 100%ig falsch
 
Der Rückgabewert des binären Und-Operators gibt die Und-Verknüpfung jeder Bitstellen wieder:
Code:
     13 &      11 = 9
b'1101' & b'1011' = 9
Denn:
Code:
 1 && 1 = 1
 1 && 0 = 0
 0 && 1 = 0
 1 && 1 = 1
-----------
13 & 11 = 9
Eine Vergleich der Züge, die nur am Wochenende fahren, wäre also:
Code:
`tagplan` & b'0000011'
Das Ganze mit eine Bedingung verknüpft:
Code:
SELECT
     IF(124 & 64, 1, 0) AS `fährt montags`,
     IF(124 & 32, 1, 0) AS `fährt dienstags`,
     IF(124 & 16, 1, 0) AS `fährt mittwochs`,
     IF(124 &  8, 1, 0) AS `fährt donnerstags`,
     IF(124 &  4, 1, 0) AS `fährt freitags`,
     IF(124 &  2, 1, 0) AS `fährt samstags`,
     IF(124 &  1, 1, 0) AS `fährt sonntags`
 
Zurück