2017-05-20 3 views
0

Ich versuche, die Anzeige von Benutzerdatensätzen einzuschränken. Grundsätzlich entwickle ich ein CRM, wo sich ein Benutzer anmeldet und seine Daten eingibt (Bestellungen, Angebote ...) und an die Datenbank übermittelt. Wenn sich ein Benutzer anmeldet, möchte ich nur die Datensätze anzeigen, die er eingegeben hat, nicht andere Daten. Dazu nehme ich session id des Benutzers und speichert sie seiner Aufzeichnungen infront,Nur angemeldete Benutzerdatensätze anzeigen

Während der Anzeige ich tue wie dieser

"SELECT * FROM orders WHERE user_id='".$_SESIION['userID']."'; 

Aber ich habe, dies zu tun ‚WHERE‘ für alle Anzeigefunktion. Statt dessen gibt es einen anderen Weg, ich kann das tun, ich meine ohne repetitive WHERE Aussage?

Bitte vorschlagen

+0

machen Sie die Abfrage einmal und speichern Sie alle Daten in der Sitzung, so dass Sie nicht jedes Mal abfragen müssen – Exprator

+0

@Exprator: Sehr Sorry, ich habe Sie nicht – user3368088

+0

Sie sagten, Sie müssen jedes Mal abfragen richtig? oder können Sie es ein wenig klar machen, was Sie wollen – Exprator

Antwort

1

Ihre Frage: Gibt es eine andere Art, wie ich dies tun, kann ich ohne sich wiederholende WHEREstatement bedeuten? Meine Antwort ist: Es gibt keine!

Hilfe für die Vorbereitung: https://www.w3schools.com/php/php_mysql_prepared_statements.asp

Die Datenbank wie dies zum Beispiel sein könnte:

Tabelle Benutzer

id_user email password etc. 

Tabelle Artikel

id_article title_article body_article id_user etc 

Wenn Sie

abfragen
select * from article where id_users = ? 

Verwenden Přepeře

insert into articles (............, id_user, ....) values (?, ?, ? etc) 

Alle Tabellen, wie dieser Artikel, kann Feld ID_USER hat, geht es in der Tabelle mit Abfrage Eingang ...., von Sitzung und Prepere Schutz vor SQL-Injektionen. Und wenn der Benutzer etwas auswählt, hat er nur das, was er injiziert hat.

+0

Yeas das ist was ich erzählte. Jede Tabelle hat 'user_id'. Aber um 'Aufträge' anzuzeigen, sollte ich' wählen ....... aus den Aufträgen, wo user_id' für 'zitiert' wieder ich sollte Benutzer' wo' ... wird es sich wiederholen, was ich will Minimieren – user3368088

+0

Alles ist minimiert. Wie viele Abfragen = Soviel wo id_user. Es gibt kein Problem. Bei jeder Abfrage codieren Sie nur Einsen, aber die Abfrage funktioniert oft. – b2ok

+0

Es ist nur eine weitere WHERE-Klausel in jeder Abfrage. Sie denken über Abfragen nach, kein Problem mehr. – b2ok

Verwandte Themen