Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrere ungleich Abfragen - bei IF

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mehrere ungleich Abfragen - bei IF

    Hallo zusammen,

    sicher eine Frage die für euch kein Problem darstellt, mich aber schon lange beschäftigt.

    Derzeit Frage ich:
    <?php if($account != "aaa")>

    nun möchte ich das ganze um eine weitere Abfrage erweitern und auch ausschließen das der account auch nicht bbb sein darf (also weder aaa noch bbb), also dachte ich mache das mit OR oder ||. Aber das geht nicht wie gedacht:

    <?php if($account != "aaa" OR $account != "bbb")>
    <?php if($account != "aaa" OR "bbb")>

    Wo liegt mein Fehler ?

    Vielen Dank für eure Tipps.

  • #2
    Was glaubst du macht das ">" am Schluss? oO

    Deine Bedingung ist außerdem falsch. Der Account darf nicht A sein und auch nicht B.

    Kommentar


    • #3
      Du musst AND oder && nutzen.

      Bei "OR - || " heißt es, eine Sache davon reicht um die Bedigungen zu erfüllen. Bei " AND - && " müssen beide Bedinungen erfüllt sein.
      Github_Cyrix, Laravelgemeinschaft bei php.de,Laravel Chat

      Kommentar


      • #4
        Hallo Danke für eure Nachrichten,

        also es muss ja nur eine Bedingung erfüllt werden !

        der account darf nicht "aaa" sein, aber auch nicht "bbb" sein.

        Ich habe cirka 20 account Typen

        ich möchte jetzt nur die beiden account Typen aaa und bbb ausschließen.

        Kommentar


        • #5
          Zitat von DerTerraner Beitrag anzeigen
          <?php if($account != "aaa" OR $account != "bbb")>
          +
          Zitat von _cyrix_
          Du musst AND oder && nutzen.
          = Ergebnis

          ich empfehle noch die einzelnen vergleiche zu klammern...Optisch besser lesbar...zumindest nach meinem Empfinden


          Zitat von DerTerraner
          also es muss ja nur eine Bedingung erfüllt werden !
          Wenn Account "aaa" ist und du in die Abfrage reinkommst. Was wird dann geift? (true OR true) ODER (false OR true) ODER (true OR false) ODER (false OR false) ?
          Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

          Kommentar


          • #6
            Ich werf' mal die Frage in den Raum, ob Du das nicht direkt über WHERE IN aus der DB filtern kannst?
            Ich gehe jetzt einfach mal davon aus, daß ne DB im Spiel ist, wenn es um "Accounts" geht?!
            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

            Kommentar


            • #7
              Sorry aber wahrscheinlich stehe ich total auf dem Schlauch...

              ich habe die folgenden Accounts.

              aaa
              bbb
              ccc
              ddd
              eee
              fff
              ggg
              hhh
              iii
              jjj
              kkk

              Bis jetzt verhindere ich erfolgreich mit der Abfrage...
              PHP-Code:
              <?php if($account != "aaa"){ // nur wenn nicht aaa Gruppe ?>
              das aaa das folgende sehen kann. Ich möchte jetzt aber auch der Gruppe "bbb" verbieten das folgende zu sehen ? Ein Besucher hat immer nur einen account.

              Kommentar


              • #8
                Eigentlich wurde alles, was Du wissen musst bereits gesagt.
                Ich frage nochmal: Ist eine DB im Spiel, aus der Du die "Accounts" ziehst?

                Wenn ja: WHERE IN

                Wenn nein: ...hast Du auch die Möglichkeit einer Blacklist:
                PHP-Code:
                $aBlackListAccounts = array( 'aaa''bbb' );

                if ( !
                in_array($account$aBlackListAccounts) ) {

                   
                // darf rein!


                Competence-Center -> Enjoy the Informatrix
                PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                Kommentar


                • #9
                  Sorry hatte Deinen Post noch nicht gelesen.

                  Ja, es ist eine Datenbank im Spiel aus der ich die Daten ziehe.

                  Kommentar


                  • #10
                    Übersetz es doch mal in Umgangssprache:
                    if ($account != 'aaa' || $account != 'bbb') => WENN $account ungleich 'aaa' ODER $account unlgeich 'bbb'

                    Egal was du für $account einsetzt - eine der Bedingungen trifft immer zu!
                    'aaa' != 'aaa' (false)
                    'aaa' != 'bbb' (true)

                    true OR false = true (siehe boolsche Algebra)

                    Sorry aber wahrscheinlich stehe ich total auf dem Schlauch...
                    Dann musst du da runter... (sprich: du musst lernen und verstehen, was du benutzt)
                    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                    Kommentar


                    • #11

                      Läuft vom Prinzip her wie deine IF Anweisung.

                      Du hast zwar Bedingungen A und B, bzw in deinem Fall ($account != "aaa") und ($account != "bbb")

                      X in dem Bild spiegelt das wieder, worauf IF prüft letztlich.

                      Jetzt überlege dir was passiert wenn ein Benutzer den account "aaa" hat.

                      Für Fall A ($account != "aaa") bedeutet dies false bzw 0...
                      jetzt denk mal weiter...Ist einfacher als es im ersten moment scheint
                      Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

                      Kommentar


                      • #12
                        Hallo Istegelitz,

                        danke für Deine sanften Worte. Ich habe es jetzt entgegen meines Verständnisses mit AND ausprobiert und es hat geklappt.

                        Übersetzt in Umgangssprache habe ich es natürlich. Aber ich habe beide Prüfungen einzeln gesehen - unabhängig von einander.

                        Ich brauche es zwar jetzt nicht, aber was müsste ich denn Fragen, wenn ich möchte das beide zutreffend sind ? Ich dachte das AND bedeutet das beide zutreffend sein müssen.

                        Algebra habe ich leider nie gehabt in der Schule. Ich habe mir das eben mal angesehen bei Wikipedia, aber das ist zu komplex um einfach mal schnell zu lernen

                        Vielen herzlichen Dank.

                        Hallo Möwe,

                        jetzt habe ich es verstanden... Vielen Dank.

                        Kommentar


                        • #13
                          Zitat von DerTerraner Beitrag anzeigen
                          Hallo Istegelitz,

                          danke für Deine sanften Worte. Ich habe es jetzt entgegen meines Verständnisses mit AND ausprobiert und es hat geklappt.

                          Übersetzt in Umgangssprache habe ich es natürlich. Aber ich habe beide Prüfungen einzeln gesehen - unabhängig von einander.

                          Ich brauche es zwar jetzt nicht, aber was müsste ich denn Fragen, wenn ich möchte das beide zutreffend sind ? Ich dachte das AND bedeutet das beide zutreffend sein müssen.

                          Algebra habe ich leider nie gehabt in der Schule. Ich habe mir das eben mal angesehen bei Wikipedia, aber das ist zu komplex um einfach mal schnell zu lernen

                          Vielen herzlichen Dank.
                          In deinem Fall wird beides zutreffend sein, schwierig werden.
                          $account ist niemals "aaa" und "bbb" gleichzeitig.

                          Was du meinst ist bestimmt sowas wie

                          PHP-Code:
                          if( ($name == "Peter") AND ($gender == "männlich"
                          Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

                          Kommentar


                          • #14
                            Aber ich habe beide Prüfungen einzeln gesehen - unabhängig von einander.
                            Das macht if aber nicht so...
                            Ist wie in der Mathematik, wenn du geklammerte Terme hast: (a+2) * (b+5)
                            Du kannst jeden Teil erstmal für sich auswerten, aber im Endeffekt musst du den gesamten Ausdruck ermitteln. Das ist, was dann hinter dem Gleichheitszeichen rauskommt.
                            Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                            Kommentar


                            • #15
                              Zitat von lstegelitz Beitrag anzeigen
                              Das macht if aber nicht so...
                              Ist wie in der Mathematik, wenn du geklammerte Terme hast: (a+2) * (b+5)
                              Du kannst jeden Teil erstmal für sich auswerten, aber im Endeffekt musst du den gesamten Ausdruck ermitteln. Das ist, was dann hinter dem Gleichheitszeichen rauskommt.
                              Anmerkung
                              PHP-Code:
                              if($account != "aaa")
                              {
                                 if(
                              $account != "bbb")
                                 {
                                 }

                              Das ist unabhängig von einander betrachten
                              Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

                              Kommentar

                              Lädt...
                              X