Fragezeichen: Wert aus Abfrage in eine if-else-Bedingung einfügen

Hallo Zusammen!

Ich habe folgendes Problem:

Ich möchte einem Wert ($row[3]) aus einer SQL-Abfrage in eine if-else-Bedingung einbinden. Jedoch übernimmt es mir den Wert aus der Abfrage nicht. Was mache ich falsch?

Danke für Eure Antwort!

Gruss
Fragezeichen

Hier mein Code:

$result  =  mysql_query("SELECT * FROM gaestebuch");
    while  ($row  =  mysql_fetch_row($result)) {
       echo "<HR>
        <b class='textfett'>Name:</b>  $row[1]";

$value=$row[3];

if ($value=1){
       echo "<img src='images/smilies/augen.gif' width='14' height='14'>$value";
   }
   elseif ($value=2){
       echo "<img src='images/smilies/schlecht.gif' width='14' height='14'>$value";
   }
      elseif ($value=3){
       echo "<img src='images/smilies/singen.gif' width='42' height='14'>$value";
   }
      else {
       echo "<img src='images/smilies/zungerot.gif' width='14' height='14'>$value";
      };

usw......

  1. Hallo,

    if ($value=1){

    ....

    Du machst meines Wissens hier keinen Vergleich sondern eine Zuweisung.

    Richtiger muesste es heissen:

    if ($value==1)
    ....

    Gruss

    Ralf

  2. Hallo,

    $result  =  mysql_query("SELECT * FROM gaestebuch");

    ich hoffe das ist nur zu Testzwecken? Lies mal http://www.dclp-faq.de/q/q-sql-select.html.

    $value=$row[3];
          if ($value=1){

    damit weist du der Variablen $value den Wert 1 zu - und das gibt (fast) immer true. Wenn du wissen willst, ob in $value der Wert 1 drinsteht, musst du if($value == 1) verwenden (siehe: http://de3.php.net/language.operators.comparison)

    echo "<img src='images/smilies/augen.gif' width='14' height='14'>$value";

    hier fehlt das alt-Attribut.

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. Danke für deine Antwort, nur....

      damit weist du der Variablen $value den Wert 1 zu - und das gibt (fast) immer true. Wenn du wissen willst, ob in $value der Wert 1 drinsteht, musst du if($value == 1) verwenden (siehe: http://de3.php.net/language.operators.comparison)

      ich möchte aber, dass in der Variable $value der Wert (Inhalt) der Variable $row[3] steht......

      1. ich möchte aber, dass in der Variable $value der Wert (Inhalt) der Variable $row[3] steht......

        das tut er ja... nur ist das so eine zuweissung das muss ein == sein wie schon gesagt wurde...

        gibt mal nach $value=$row[3]; den wert von $value aus also mit echo "$value"; und guck ob das der richtige ist...

  3. echo "<HR>
            <b class='textfett'>Name:</b>  $row[1]";

    liefert er da keine Fehlermeldung??
    So weit ich weiss ist das auch ein syntaxfehler...

    das muss heissen

    echo "<HR>
            <b class='textfett'>Name:</b>".$row[1].";

    1. Hallo,

      echo "<HR>
              <b class='textfett'>Name:</b>  $row[1]";
      So weit ich weiss ist das auch ein syntaxfehler...

      Nein, ist es nicht.
      Man kann zwischen doppelten Anfuehrungszeichen (mit gewissen
      Einschraenkungen) auch auf Array-Variablen zugreifen,
      ohne den String zu unterbrechen oder geschweifte Klammern
      zu verwenden.
      http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing.simple

      das muss heissen

      echo "<HR>
              <b class='textfett'>Name:</b>".$row[1].";

      _Hier_ wuerde ich eine Fehlermeldung erwarten.
      Du "unterbrichst" den String, schreibst den Array,
      und oeffnest dann wieder einen String, den Du nicht schliesst...

      Gruesse,

      Thomas

      --
      Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
      Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
      Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/