Schotti: IF - Abfrage funktioniert nicht

Hallo,

könnt ihr mir bitte helfen, ich habe eine IF - Abfrage in PHP
geschrieben, jedoch funktioniert diese nicht und ich weiß einfach
nicht warum! Ich finde einfach keinen Fehler! Es wird auch der
richtige Wert zurück geliefert also in diesem Fall hat die Variable
$beschreibung den Wert "ja".

Hier der Quelltext:

if($beschreibung != ja)
{
echo '<a href="beschreibung.php">- Beschreibung für diese Koje erfassen -</a>';
echo '</strong></font></div>';
}
else
{
echo '</strong></font></div>';
}

Vielen Dank für die Hilfe!

Gruß

Schotti

  1. Hallo,

    if($beschreibung != ja)

    wie wäre es mit $beschreibung != "ja" (Anführungszeichen!)?

    Gruß,
    Severin

    --
    They that can give up essential liberty to obtain a little temporary safty deserve neither liberty nor safty.
    -- Benjamin Franklin
    1. Hallo,

      ich hatte es auch schon in "" geschrieben, das funktioniert trotzdem
      nicht!

      Gruß

      Schotti

      1. Hallo,

        ich hatte es auch schon in "" geschrieben, das funktioniert trotzdem
        nicht!

        Dann hast du zu wenig Quelltext angegeben um den Fehler zu finden. Stelle dir folgende Fragen:
        Was soll passieren?
        Was passiert?
        Welchen Wert haben alle verwendeten Variablen (bei dir im besonderen $beschreibung)?

        Wenn ich weiter raten müsste, würde ich sagen, du hast die If-Logik vielleicht vertauscht. Kann es sein, dass der Link erscheinen soll, wenn $beschreibung ja ist und nicht umgekehrt?

        Gruß,
        Severin

        --
        They that can give up essential liberty to obtain a little temporary safty deserve neither liberty nor safty.
        -- Benjamin Franklin
        1. Kann es sein, dass der Link erscheinen soll, wenn $beschreibung ja ist und nicht umgekehrt?

          Hallo,

          ich habe mir die Variable schon ausgeben lassen und sie gibt auch den gewünschten Wert zurück. Diese Variable kann nur den Wert "ja" oder "nein" annehmen. Der Link soll nur erscheinen wenn der Wert "nein" ist!
          Ich habe es auch schon ander herum porbiert und habe gesagt

          if($beschreibung = "nein")
          {
          ...
          }

          das hat aber auch nichts gebracht.

          Gruß

          Schotti

          1. Hallo,

            if($beschreibung = "nein")

            es müsste $beschreibung == "nein" heißen. Aber wie gesagt, ich vermute der Fehler liegt irgendwo anders in deinem Skript. Und da du dich noch nicht allzu lange mit PHP zu beschäftigen scheinst, dürfte es wohl ein "Trivialfehler" sein. Bist du sicher, dass alle Klammern, Anführungszeichen und so weiter richtig gesetzt sind?

            Gruß,
            Severin

            --
            They that can give up essential liberty to obtain a little temporary safty deserve neither liberty nor safty.
            -- Benjamin Franklin
            1. es müsste $beschreibung == "nein" heißen

              Hallo,

              danke jetzt funktionierts! Ich schau jetzt schon seit einer guten Stunde den Quelltext an und bin einfach nicht darauf gekommen!

              Gruß

              Schotti

              1. Hallo Schotti,

                es müsste $beschreibung == "nein" heißen
                danke jetzt funktionierts! Ich schau jetzt schon seit einer guten Stunde den Quelltext an und bin einfach nicht darauf gekommen!

                ein Blick ins Handbuch hätte geholfen ...

                Grüße aus Nürnberg
                Tobias

  2. Hallo Schotti,

    Dein Stueck Quellcode ist zu klein, man muesste wissen, was in $beschreibung steht, bzw. wie es da rein kommt, um dir weiterhelfen zu koennen. Es faellt allerdings auf, das 'ja' bei dir nicht in Anfuehrungsstrichen steht und demanch die Konstante 'ja', nicht der String 'ja' gemeint ist. Das halte ich, so ins Blaue gersten, aber fuer ziemlich unwahrscheinlich. Es waere demnach hilfreich, du wuerdest dein Script anfangen mit 'error_reporting(2047);', dann wuerdest du vermutlich auch ein paar brauchbare Fehlermeldungen bekommen.

    PS.: Du wuerdest Dir einen sehr grossen Gefallen tun, wenn Du anstatt dem urtuemlichen <font> CSS benutzen wuerdest.

    Gruß,

    Dieter

    1. Hallo Dieter,

      in der Variablen $beschreibung steht der Wert "ja" das würde heißen, dass der link nicht angezeigt werden sollte.

      Hier der Part der vor der IF-Abfrage passiert

      echo '<br><br>';
        echo $beschreibung;
        echo '<br><br>';
        echo '<div align="center"><font face="verdana" size="3"><strong>';
        echo '<a href="bilderupload.php">Weiteres Bild erfassen</a>';
        echo '<br><br>';

      if($beschreibung = 'nein')
        {
        echo '<a href="beschreibung.php">- Beschreibung für diese Koje erfassen -</a>';
        echo '</strong></font></div>';
        }
        else
        {
        echo '</strong></font></div>';
        }

      Gruß

      Schotti

      1. Hallo Schotti,

        Severin hat ja schon erklaert, dass $beschreibung = 'nein' eine Zuweisung ist und du $beschreibung == 'nein' fuer einen Vergleich einsetzen musst. Hast du denn, wie empfohlen, das error_reporting(2047) gesetzt? Wohl eher nicht, oder?

        Gruß,

        Dieter

  3. dann beginn mal mit der Fehlersuche...

    Was ich als erstes versuchen würde...

    print "-$beschreibung-<br>";
    if($beschreibung != "ja")
    {
    echo '<a href="beschreibung.php">- Beschreibung für diese Koje erfassen -</a>';
    echo '</strong></font></div>';
    }
    else
    {
    echo '</strong></font></div>';
    }

    Und mal schauen ob wirlich unter Beschreibung "ja" oder "nein"
    steht, und ob eventuell Leerzeichen dahinter sind (denn das kann schon mal übersehen werden)

    Was auch ein Fehler sein könnte
    href="beschreibung.php"
    in Slashes setzen
    href="beschreibung.php"

    Aber schau dir doch mal denHTML-Code dazu an

    1. Hallo,

      Was auch ein Fehler sein könnte
      href="beschreibung.php"
      in Slashes setzen
      href="beschreibung.php"

      nein, da der Code der Ausgegeben werden soll in einfachen Anführungszeichen steht, müssen doppelte nicht maskiert werden.

      Grüße aus Nürnberg
      Tobias

    2. Hallo flashnfantasy,

      href="beschreibung.php"
      in Slashes setzen
      href="beschreibung.php"

      Das ist nicht so, weil der String ja insgesamt in einfachen Anfuehrungszeichen steht.

      Gruß,

      Dieter