2017-04-11 2 views
1

Ich arbeite an einem Projekt, wo ein Benutzer einloggen wird und es zeigt nur Datensätze, wenn die rep Spalte ihre name ist. Ich weiß, es gibt eine Tonne von Möglichkeiten, dies aber der einfachste Weg, um für mich zu tun Wenn Aussagen mit Sitzungen zu verwenden istPHP If Statements mit SESSION

if($_SESSION['account_type'] == 'Rep') { 

    $sql = "SELECT * FROM `employee` WHERE rep='".$_SESSION['name']."' "; 

} elseif ($_SESSION['account_type'] == 'Manager') { 

    $sql = "SELECT * FROM `employee` WHERE Manager='".$_SESSION['name']."' "; 

} elseif ($_SESSION['account_type'] == 'Regional') { 

    $sql = "SELECT * FROM `employee` WHERE Region='".$_SESSION['regional']."' "; 

} elseif ($_SESSION['account_type'] == 'Other') { 

    $sql = "SELECT * FROM `employee` "; 

} else { 
    echo 'no records found'; 
} 

Wenn Ihr Kontotyp ist ein rep, zeigen nur Datensätze mit Ihrem Namen. Wenn Ihr Kontotyp manager ist, zeigen Sie Datensätze an, in denen der Managereintrag Ihren Namen hat usw. usw.

Aus irgendeinem Grund bekomme ich keine Datensätze zurück; es ist leer.

Wenn ich es ändern, um nur:

$sql = "SELECT * FROM `employee` WHERE rep='".$_SESSION['name']."' "; 

ich Aufzeichnungen zurück, wo er den Namen des Benutzers in der rep Spalte hat; Das ist großartig, aber ich brauche die if-Anweisungen zu arbeiten.

Irgendwelche Ideen?

UPDATE

Syntaxfehler - danke!

+0

keine Fehler überhaupt nur einfach leer? –

+0

hast du die sitzung oben auf der seite gestartet? – JYoThI

+0

leere Seite bedeutet Fehler irgendwo in Ihrem Code – JYoThI

Antwort

0

Verwenden Sie === oder strcmp Funktion. Sie sollten nicht == für String Vergleich verwenden.

Versuchen if($_SESSION['account_type'] === 'Rep') und so weiter ...

+0

sollte es im Kommentarbereich sein und wenn eine Bedingung nicht mindestens erfüllt, sollte es den anderen Teil widerspiegeln. aber er erzählt, dass er eine leere Seite bekommt. Also irgendwo in seinem Code ist Fehler – JYoThI

+0

Sie haben Recht, ich fand dort Fehler (Home Simpson DOH!) – JD6969

+0

Ich weiß nicht, warum Sie das gesagt haben, aber besuchen Sie bitte https://www.tutorialspoint.com/mysql/mysql-where- clause.htm mysql where-Klausel hat Operator wie == oder === es nur erlaubt = für gleiche Bedingung –