Ankündigung

Einklappen
Keine Ankündigung bisher.

If Else Frage

Einklappen

Neue Werbung 2019

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

  • If Else Frage

    Hi zusammen,

    Ich bin gerade dabei mein eigenes Gästebuch zu programmieren. Jetzt hab ich eine kleine Frage:

    Code:
    if ($row[Home] != ""){
    echo "";
    }else{
    echo "<a target=\"_blank\" href=\"http://". htmlspecialchars($row["Home"]) ."\"><img border=\"0\" src=\"images/url.gif\"></a>";
    }
    Dieser Code soll mir Anzeigen wenn ich in der Mysql Datenbank unter Home keinen Wert stehen habe soll er keinen Link mit Bild anzeigen wenn ich doch was drinstehen habe dann soll er mir den Link mit dem Bild anzeigen.
    Leider funzt das ganze so nicht und ich komm einfach nicht drauf was falsch ist.

    Vielleicht könnt ihr mir weiterhelfen

  • #2
    Re: If Else Frage

    Code:
    if ($row[Home] != ""){
    echo "";
    }else{
    echo <a target=\"_blank\" href=\"http://". htmlspecialchars($row["Home"]) ."\"><img border=\"0\" src=\"images/url.gif\"></a>";
    }
    Du hast die If-Anweisung verkehrt aufgebaut:

    Code:
    if ($row['Home']==""){
        echo "";
    } else {
           echo "<a target=\"_blank\" href=\"http://".htmlspecialchars($row["Home"]) ."\"><img border=\"0\"src=\"images/url.gif\"></a>";
    }
    //EDIT
    Dabke Zorki

    Kommentar


    • #3
      Ich verbesser einfach mal:

      if ($row["Home"] == ""){
      echo "";
      } else {
      echo "<a target=\"_blank\" href=\"http://". htmlspecialchars($row["Home"]) ."\"><img border=\"0\" src=\"images/url.gif\"></a>";
      }

      Das sollte jetzt zumindestens funktionieren. ein Tipp: Wenn du hier Fragen stellst, dann schreib dazu was passiert. Denn dass es nicht geht können wir uns denken.

      Kommentar


      • #4
        Ok das hab ich inzwischen auch gemerkt, jetzt ist halt das Problem diese If Else Anweisung steht in einer While Schleife hier mal der Code der While Schleife:

        Code:
        while ($row=mysql_fetch_assoc($result2)) {
        echo "<table width=\"500\" align=\"center\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" background=\"../rahmen/gastoben.gif\">
          <tr>
            <td><img border=\"0\" src=\"../images/style/para.gif\" height=\"22\" width=\"1\"></td>
          </tr>
        </table>
        <table width=\"500\"  align=\"center\" border=\"0\" cellspacing=\"5\" cellpadding=\"8\" background=\"../rahmen/gastmitte.gif\">
          <tr>
            <td width=\"30%\" align=\"center\" valign=\"top\">" . $row["Datum"] . "
        
        " 
         . htmlspecialchars($row["Name"]) . "
        
        ";
         if ($row["Home"] != ""){ 
        echo ""; 
        }else{ 
        echo "<a target=\"_blank\" href=\"http://". htmlspecialchars($row["Home"]) ."\"><img border=\"0\" src=\"images/url.gif\"></a>";
        } 
         "<a target=\"_blank\" href=\"mailto:". htmlspecialchars($row["Email"]) ."\"><img border=\"0\" src=\"images/email.gif\"></a>
         <a href=\"http://wwp.icq.com/scripts/search.dll?to=". htmlspecialchars($row["Icq"]) ."\"><img border=\"0\" src=\"http://wwp.icq.com/scripts/online.dll?icq=". htmlspecialchars($row["Icq"]) ."&img=5\" align=\"absmiddle\"></a></td>
         <td width=\"70%\" align=\"center\" valign=\"top\">". htmlspecialchars($row["Titel"]) ."
        
        " . nl2br(htmlspecialchars($row["Kommentar"])) . "</td>
         </tr></table>
         <table width=\"500\" border=\"0\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\" background=\"../rahmen/gastunten.gif\">
          <tr>
            <td><img border=\"0\" src=\"../images/style/para.gif\" height=\"22\" width=\"1\"></td>
          </tr>
        </table>
        
        ";
         } // while Schleife Ende
        Problem ist halt wenn ich die If Else Anweisung da reinschreibe verschiebt er mir alle Tabellen und alles weil ich eigentlich vor dem Ende ja kein ; reinsetzen darf weils ja ein "Stück" sein soll

        Kommentar


        • #5
          Kann man vielleicht die If Else Abfrage in einer Variable vor der While Schleife speichern und dann nur die Variable in der While Schleife ausgeben ?

          Vielleicht geht das ja

          Kommentar


          • #6
            Problem ist halt wenn ich die If Else Anweisung da reinschreibe verschiebt er mir alle Tabellen und alles weil ich eigentlich vor dem Ende ja kein ; reinsetzen darf weils ja ein "Stück" sein soll
            Das muss man jetzt nicht wirklich verstehen, oder?

            Gruß
            phpfan

            Kommentar


            • #7
              Naja ich bin noch Anfänger, wenn ich die If Else Abfrage in meine While Schleife reinschreibe dann zeigt er mir garnix mehr an bzw verschiebt die Tabelle in der diese If Else Abfrage steht.

              Ich hab jetzt mal angefangen die if else Abfrage in eine Variable zu speichern, leider hab ich noch ein paar Fehlermeldungen die ich noch nicht ganz verstehe:

              Code:
              $home= "$row[Home]";
              if ($home == ""){ 
              $home= ""; 
              }else{ 
              $home= "<a target=\"_blank\" href=\"http:/". htmlspecialchars($row["Home"]) ."\"><img border=\"0\" src=\"images/url.gif\"></a>";
              }
              Notice: Undefined variable: row in /www/gb/guestbook.php on line 19

              Notice: Undefined variable: row in /www/gb/guestbook.php on line 20

              Kommentar


              • #8
                man kann eine if schleife in eine variable speichern. das musst du schon mit funktionen machen.

                mfg
                DarkManX

                Kommentar


                • #9
                  leider bin ich mit meinem Gästebuch immernoch nicht weitergekommen, um es nochmal genau zu erklären:

                  Code:
                  // while-Schleife Anfang
                  while ($row=mysql_fetch_assoc($result2)) {
                  echo "<table width=\"500\" align=\"center\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" background=\"../rahmen/gastoben.gif\">
                    <tr>
                      <td><img border=\"0\" src=\"../images/style/para.gif\" height=\"22\" width=\"1\"></td>
                    </tr>
                  </table>
                  <table width=\"500\"  align=\"center\" border=\"0\" cellspacing=\"5\" cellpadding=\"8\" background=\"../rahmen/gastmitte.gif\">
                    <tr>
                      <td width=\"30%\" align=\"center\" valign=\"top\">" . $row["Datum"] . "
                  
                  " 
                   . htmlspecialchars($row["Name"]) . "
                  
                  
                   <a target=\"_blank\" href=\"http://". htmlspecialchars($row["Home"]) ."\"><img border=\"0\" src=\"images/url.gif\"></a> 
                   <a target=\"_blank\" href=\"mailto:". htmlspecialchars($row["Email"]) ."\"><img border=\"0\" src=\"images/email.gif\"></a>
                   <a href=\"http://wwp.icq.com/scripts/search.dll?to=". htmlspecialchars($row["Icq"]) ."\"><img border=\"0\" src=\"http://wwp.icq.com/scripts/online.dll?icq=". htmlspecialchars($row["Icq"]) ."&img=5\" align=\"absmiddle\"></a></td>
                   <td width=\"70%\" align=\"center\" valign=\"top\">". htmlspecialchars($row["Titel"]) ."
                  
                  " . nl2br(htmlspecialchars($row["Kommentar"])) . "</td>
                   </tr></table>
                   <table width=\"500\" border=\"0\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\" background=\"../rahmen/gastunten.gif\">
                    <tr>
                      <td><img border=\"0\" src=\"../images/style/para.gif\" height=\"22\" width=\"1\"></td>
                    </tr>
                  </table>
                  
                  ";
                   } // while Schleife Ende
                  So wenn ich jetzt das ganze Aufrufe funktioniert das ja auch alles, nur ich möchte das wenn in der Variable . htmlspecialchars($row["Home"]) . keine Daten stehen der Link mit dem Bild verschwindet und nur wenn Daten drinstehen der Link mit dem Bild erscheint.

                  Ich hab das ganze schon mit If Else probiert, würde auch funktionieren wenn der if else befehl nicht in der While Schleife stehen würde weil der mir dort alles durcheinander wirft. Nun wie kann man denn das ganze machen ? Wenns geht bitte so erklären das ich es auch verstehe ich will ja PHP lernen und nicht irgendwelche Codeschnipsel da einsetzen.

                  Kommentar


                  • #10
                    Ich hab jetzt mal den relevanten Teil umgearbeitet:
                    Code:
                      <td width=\"30%\" align=\"center\" valign=\"top\">" . $row["Datum"] . "
                    
                    " 
                    . htmlspecialchars($row["Name"]) . "
                    
                    ";
                    if ($row["Home"] != "")
                     {
                      echo "<a target=\"_blank\" href=\"http://". htmlspecialchars($row["Home"]) ."\"><img border=\"0\" src=\"images/url.gif\"></a>";
                     }
                    echo " <a target=\"_blank\" href=\"mailto:". htmlspecialchars($row["Email"]) ."\">
                    So müsste es funktionieren.
                    mfg RudiS

                    Kommentar


                    • #11
                      Sorry aber das ist UNSCHÖN:
                      besser:
                      Code:
                      $home= "$row['Home']"; 
                      if (!$home == ""){ 
                      $home= '[img]images/url.gif[/img]'; 
                      }

                      Kommentar


                      • #12
                        Also mal ehrlich das finde ich ganz schön umständlich. Wieso soll ich bei jeder Prüfung eine neue Variable definieren?
                        Und ob es jetzt != oder !$variable == heißt ist doch vollkommen egal oder.
                        mfg RudiS

                        Kommentar

                        Lädt...
                        X