Ankündigung

Einklappen
Keine Ankündigung bisher.

if mit 2 Bedingungen

Einklappen

Neue Werbung 2019

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

  • if mit 2 Bedingungen

    hi leute,

    irgrndwie muss ich einen fehler drin haben, kann mir da jemand helfen.

    die abfrage soll nur ausgeführt werden wenn die variable "$kk" leer oder auf "aus" gesetzt ist.
    wenn ich nur mit einer bedingung arbeite klappt es aber nicht mit beiden, dann wird sie immer ausgeführt egal was sich in "$kk" befindet

    PHP-Code:
    if ( $kk !== "aus" || $kk !== "" ){
            
    $auswahl ="WHERE aktiv LIKE '$aktiv' AND kk= '$kk' AND linkart LIKE 'vw'  ORDER BY plz ASC";
            
        } 
    sorry war mein fehler, sie soll dann matürlich nicht ausgefürt werden also das ausrufezeichen ist schon richtig

  • #2
    die abfrage soll nur ausgeführt werden wenn die variable "$kk" leer oder auf "aus" gesetzt ist.
    PHP-Code:
    if ($kk == "aus" || $kk == "" ){ 
    http://www.php.de/php-einsteiger/489...nsammlung.html

    Kommentar


    • #3
      Zitat von BlackSpirit Beitrag anzeigen
      PHP-Code:
      if ($kk == "aus" || $kk == "" ){ 
      sorry war mein fehler, sie soll dann matürlich nicht ausgefürt werden also das ausrufezeichen ist schon richtig

      Kommentar


      • #4
        PHP-Code:
        if ($kk != "aus" || $kk != "" ){ 

        Kommentar


        • #5
          Zitat von BlackSpirit Beitrag anzeigen
          PHP-Code:
          if ($kk != "aus" || $kk != "" ){ 
          hatte ich auch schon versucht und eben nochmal ist das selbe ergebnis

          Kommentar


          • #6
            Jez wirds interessant, zeig mal bisschen mehr Code, bzw. lass dir mal $kk vor der if-Abfrage ausgeben.

            Kommentar


            • #7
              PHP-Code:
              if ($kk != "aus" || $kk != "" ){ 
              Das ist gleichbedeutend mit

              PHP-Code:
              if (true) { 
              [PHP]if ($var != 0) {
              $var = 0;
              }[/PHP]

              Kommentar


              • #8
                Zitat von BlackSpirit Beitrag anzeigen
                Jez wirds interessant, zeig mal bisschen mehr Code, bzw. lass dir mal $kk vor der if-Abfrage ausgeben.
                PHP-Code:
                if ( $kk !== "aus" || $kk !== "" ){
                        
                $auswahl ="WHERE aktiv LIKE '$aktiv' AND kk= '$kk' AND linkart LIKE 'vw'  ORDER BY plz ASC";
                        echo 
                "kk angesprochen <br>" ;
                        echo 
                $kk."<--- kk";
                    } 
                alles schon gemacht

                es wird jedesmal angesprochen egal was $kk enthält

                Kommentar


                • #9
                  Ist mir auch gerade bewusst geworden.
                  Entweder enthällt es nicht "aus" oder ist nicht leer, das trifft immer zu.
                  Ich glaube du solltest das || mit && austauschen

                  Kommentar


                  • #10
                    eigenartiger weise geht es wenn ich nur eine bedingung abfrage

                    so muß nun aber erst zur schicht. vieleicht fällt ja noch jemanden was ein danke erstmal für die hilfe

                    Kommentar


                    • #11
                      Zitat von Herbert40 Beitrag anzeigen
                      eigenartiger weise geht es wenn ich nur eine bedingung abfrage
                      Ist ja völlig logisch das es dann funktioniert. (siehe vorherige Posts)

                      Kommentar


                      • #12
                        Einmal Nachhilfe in Logik

                        Code:
                        !(a || b) == !a && !b
                        Also: nicht ($kk leer oder $kk=='aus') => $kk ist nicht leer UND nicht 'aus'
                        [IMG]https://g.twimg.com/twitter-bird-16x16.png[/IMG][URL="https://twitter.com/fschmengler"]@fschmengler[/URL] - [IMG]https://i.stack.imgur.com/qh235.png[/IMG][URL="https://stackoverflow.com/users/664108/fschmengler"]@fschmengler[/URL] - [IMG]http://i.imgur.com/ZEqflLv.png[/IMG] [URL="https://github.com/schmengler/"]@schmengler[/URL]
                        [URL="http://www.schmengler-se.de/"]PHP Blog[/URL] - [URL="http://www.schmengler-se.de/magento-entwicklung/"]Magento Entwicklung[/URL] - [URL="http://www.css3d.net/"]CSS Ribbon Generator[/URL]

                        Kommentar


                        • #13
                          Das || oder OR bedeutet, daß entweder die eine Bedingung oder die andere Bedingung und beide Bedingungen zutreffen.

                          Ist also nicht gleichbedeutend mit dem umgangssprachlichen "oder".

                          PHP-Code:
                          <?php
                          // $kk darf nicht leer sein und es darf nicht 'aus' drinstehn:

                          if (!empty($kk) && $kk != 'aus'){ 
                             
                          // ...
                          }
                          ?>
                          Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

                          Kommentar


                          • #14
                            Zitat von Koala Beitrag anzeigen
                            Das || oder OR bedeutet, daß entweder die eine Bedingung oder die andere Bedingung und beide Bedingungen zutreffen.

                            Ist also nicht gleichbedeutend mit dem umgangssprachlichen "oder".

                            PHP-Code:
                            <?php
                            // $kk darf nicht leer sein und es darf nicht 'aus' drinstehn:

                            if (!empty($kk) && $kk != 'aus'){ 
                               
                            // ...
                            }
                            ?>
                            supi danke so gehts.

                            zu deiner oberen aussage bin ich nun auch schlauer geworden da gleichzeitig geprüft wird ob auch beide bedingunen nicht zutreffen konnte es dann ja nicht gehen
                            also wieder dazu gelernt , OR bzw || ist nicht gleich oder
                            Danke für die hilfe an alle

                            Kommentar


                            • #15
                              da gleichzeitig geprüft wird ob auch beide bedingunen nicht zutreffen konnte es dann ja nicht gehen
                              nein - Du hast es noch nicht begriffen:

                              PHP-Code:
                              <?php

                              $kk 
                              'aus';

                              if(
                              $kk != 'aus' || $kk != ''){

                                 
                              // erste Bedingung ist nicht erfüllt ($kk ist gleich 'aus')

                                 // aber die zweite ist erfüllt ($kk hat einen Inhalt)

                                // also ist die Gesamtabfrage true,
                                // da mindestens eine der beiden Bedingungen erfüllt ist 

                              }

                              $kk '';

                              if(
                              $kk != 'aus' || $kk != ''){

                                 
                              // erste Bedingung ist erfüllt ($kk ist nicht gleich 'aus')

                                 // die zweite ist nicht erfüllt ($kk hat keinen Inhalt)

                                // also ist die Gesamtabfrage true,
                                // da mindestens eine der beiden Bedingungen erfüllt ist 

                              }


                              ?>
                              Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

                              Kommentar

                              Lädt...
                              X