2016-11-23 2 views
-4

Ich muss zwei Datenbankfelder für ein Ja/Nein Ergebnis überprüfen.Ich muss Querverweis zwei Datenbankfelder

Ich frage mich nur, ob das unten Sinn macht mit dem, was ich tun muss.

((a + b) + c = d) if a + b are true and c is also true then return Yes 
((a + b) + c = d) if a + b are false and c is false then return No 
((a + b) + c = d) if a + b are true and c is false then return No 
((a + b) + c = d) if a + b are false and c is false then return No 

Pseudo-Code zur Seite,

Ich muss in der Lage, dies in PHP zu drehen, wenn ich b aus der Gleichung entferne ich ein Ergebnis völlig in Ordnung zurückzukehren, aber das Hinzufügen von zusätzlichen Kontrollen gibt nur leer.

@if ($report->subjectid == '2' && $report->subjectid == '3' && $report->metprogress == '1') Yes 

    @elseif ($report->subjectid === '2' && $report->subjectid == '3' && $report->metprogress == '4' or 
      $report->subjectid === '2' && $report->subjectid == '3' && $report->metprogress == '5') No 

@endif</td> 

Dies ist der aktuelle Code, den ich habe, die offensichtlich nicht mit dem Pseudo-Code korreliert, wie ich versuche, die tatsächliche Struktur, um herauszufinden, was ich brauche.

Vielen Dank im Voraus.

+0

Ihre 2. und 4. Reihe ist gleich? ((a + b) + c = d) Wenn a + b falsch sind und c falsch ist, dann gebe zurück – MrApnea

+0

Ich sehe nicht, was das mit Mathematik zu tun hat. Es ist nichts anderes als Grammatikarithmetik. – duffymo

+2

Was bedeutet "wenn a + b wahr sind"? In einer Minute sehen diese wie Zahlen aus, die nächsten sind boolean. Wählen Sie, um zu schließen, weil es unklar ist, was Sie fragen und nicht über Mathematik. – duffymo

Antwort

0

Es ist nicht klar, was Sie fragen.

Aber ich würde vorschlagen, dass es nicht möglich ist, für die dieser Ausdruck auf TRUE zu bewerten:

$report->subjectid == '2' && $report->subjectid == '3' 

Wenn die Objekteigenschaft subjectid gleich '2' ist, kann es nicht auch zu '3' gleich sein. Und umgekehrt. Mindestens eine dieser Bedingungen wird nicht als TRUE ausgewertet. Und das bedeutet, dass das Ergebnis der logischen UND-Operation niemals zu TRUE ausgewertet wird.