Ankündigung

Einklappen
Keine Ankündigung bisher.

If else abfrage funzt nicht

Einklappen

Neue Werbung 2019

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

  • If else abfrage funzt nicht

    Ich habe eine Frage. Folgender Code müsste doch eigentlich funktionieren oder??

    <?
    if ($menu = 4 and $submenu = 1)
    { $height = 619; }
    elseif ($menu = 1)
    { $height = 408; }

    echo "$height";

    ?>

    Er gibt mir immer die 619 als height aus. Obwohl $menu 1 ist und nicht 4. Das if wird erfüllt ...

    Steckt nich mehr dahinter. Nur das soll funktionieren. Aber es geht nicht??? Was mach ich falsch?

  • #2
    Mach mal aus den "=" in den If-Abfragen "==".

    Kommentar


    • #3
      Re: If else abfrage funzt nicht

      <?
      if ($menu == 4 and $submenu == 1)
      { $height = 619; }
      elseif ($menu == 1)
      { $height = 408; }

      echo "$height";

      ?>

      So? Dann funktioniert garnichts mehr. Dann gibt er als height 0 aus

      Kommentar


      • #4
        Lass dir doch einfach mal die Variablen Ausgeben.
        Vllt wird einfach keine der beiden Abfragen erfühlt und $height bekommt somit keinen Wert zugewiesen.

        PHP-Code:
        <?php
        if($menu == && $submenu == 1)
          { 
          
        $height 619
          }
        elseif(
        $menu == 1)
          {
          
        $height 408
          }

        echo 
        "$height";

        ?>
        An dem von dir geposteten Teil liegt es nicht!

        Kommentar


        • #5
          Code:
          <?
          if ($menu == 4 AND $submenu == 1)
          {
             $height = 619;
          }
          elseif ($menu == 1)
          {
             $height = 408; 
          }
          echo "$height";
          ?>
          Der Code ist schon richtig.
          Beachte aber dabei, das $menu auf jeden Fall den Wert 4 oder 1 haben muß, sonst hat $height keinen Wert.
          Wenn du willst, das $height = 408 sein soll, nur nicht wenn $menu = 4 und $submenu = 1 dann nimm else und nicht elseif.

          MfG
          Andi Z.

          Kommentar


          • #6
            Er bekommt IMMER $menu = 1 und daher auch $height = 619 zurück, egal was aufgerufen wird .... Den Inhalt der zu $menu = X geladen werden soll wird immer richtig aus der DB geladen ...

            Das heisst das die Variable $menu richtig ausgegeben wird, meine height berechnung aber nicht dran kommt??

            Kommentar


            • #7
              Re: If else abfrage funzt nicht

              Zitat von DDogg
              Ich habe eine Frage. Folgender Code müsste doch eigentlich funktionieren oder??
              Nö, = ist eine Zuweisung die immer true ist, solang der zugewiesene Wert nicht 0 oder NULL ist, == ist der Vergleichsoperator, den du meinst.

              [php]<?php
              $a = "a";
              if ($a = "b") {
              // jetzt landest du hier, denn "b" wurde erfolgreich $a zugewiesen
              } else {
              // hier landest du nie
              }

              $a = "a";
              if ($a == "b") {
              // hier landest du nie
              } else {
              // hier landest du, da die if-Bedingung FALSE war
              }
              ?>
              PHP-Code:

              Das nächste mal 
              [url=http://tut.php-q.net]Grundlagen lernen[/url], bevor du hier postest. 

              Kommentar


              • #8
                Das mit den Grundlagen stimmt leider so nicht. Ich wär froh es würde daran liegen. Das mit dem einen = war nur eun verzweifelter Versuch den Fehler im Code zu finden ... Einfach alles umschreiben um zu sehn was geht und was nich.

                Die Abfrage echo "$menu": hat mir jetzt gesagt das $menu immer eins ist. Also ist einfach der Punkt wo ich $menu erfrage falsch, da an dieser Stelle $menu noch nicht definiert ist

                denk ich mir mal so

                Kommentar


                • #9
                  Wo liegt dann das Problem?

                  Kommentar


                  • #10
                    tsja das is der pudels gern

                    .... ich hab kein Plan warum das ding nich funktioniert. Das is eigentlich so pille palle ...
                    Weil am Code liegts nich!

                    Kommentar


                    • #11
                      Also die Height abfrage befindet sich auf der seite index.php. In der selben werden Inhalte aufgerufen. In der Navi steht zb.:

                      PHP-Code:
                      <?php
                      <a href="index.php?menu=1&submenu=1" onmouseover="akt(1,'a')" onmouseout="akt(1,'n')">
                      ?>
                      Die Seite index.php wird aufgerufen, in den Browserzeile steht www. .... /index.php?menu=1&submenu=1 und die Inhalte aus der DB für menu=1&submenu=1 werden geladen.

                      Die height Abfrage bekommt aber mit folgenden Code garkein $menu rein. Die Abfrage echo "$menu"; ergibt immer 0 also nichts.

                      PHP-Code:
                      <?php
                      <?
                      echo 
                      "$menu";

                      if (
                      $menu == and $submenu == 1)
                      {
                         
                      $height 619;
                      }
                      elseif (
                      $menu == 1)
                      {
                         
                      $height 408;
                      }
                      elseif (
                      $menu == 0)
                      {
                         
                      $height 2000;
                      }
                      else
                      {
                         
                      $height 600;
                      }
                      ?>
                      ?>
                      Weiss jemand woran das liegen könnte?

                      Kommentar


                      • #12
                        Das wird sicherlich daran liegen, dass register_globals deaktiviert ist und du deswegen Variablen, die nicht in deinem Script definiert werden, nicht mehr direkt über ihren Namen sondern über das entsprechende superglobale Array ansprechen kannst: http://tut.php-q.net/get.html

                        Kommentar


                        • #13
                          Genau das!!!!!!!!!!!!!

                          Vielen Dank.

                          So is das richtig:

                          PHP-Code:
                          <?
                          $menu = $_GET['menu'];

                          if ($menu == 4)
                          {
                             $height = 619;
                          }
                          elseif ($menu == 1)
                          {
                             $height = 408;
                          }
                          elseif ($menu == 0)
                          {
                             $height = 200;
                          }
                          else
                          {
                             $height = 600;
                          }
                          ?>
                          Sieht man mal wieder das die Qualität der Antwort nur von der Genauigkeit der Frage abhängt ^^

                          Danke nochmal!

                          Kommentar

                          Lädt...
                          X