Ergebnis 1 bis 10 von 10

Thema: mehrere if = geht nich??

  1. #1
    Interessierte/r Avatar von lippl
    Registriert seit
    02.10.2006
    Beiträge
    106
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard mehrere if = geht nich??

    heyho
    also ich hab n problem, ich hab für mein gbook mid mysql ich möchte für e-mail iicq... symbole ausgeben aber natürlich nur wenn auch eine e-mailadresse aneggeben is....nun habe ich mehrere ifs... wenn ich duiese weglasse wird alles ausgegeben wie ich möchte aber wenn ich die ifs reinsetzte wird nur 1 davon angezeigt??
    ty für die hilfe schomma im vorraus

    Code:
    if($row->email == "")
           {
           $email = "";
           }
        else
           {
           //Der User hat eine Email Adresse angegeben:
           $email = "<a href=\"mailto&#58;$row->email\"><img src=\"images/email_icon.png\" width=\"19\" height=\"15\" border=\"0\"/></a>"; &#125;
    if&#40;$row->icq == ""&#41;
           &#123;
           $icq = "";
           &#125;
        else
           &#123;
           //Der User hat eine ICQ Adresse angegeben&#58;
           $icq = "<a href=\"http&#58;//www.icq.com/scripts/search.dll?to=$row->icq\" target=\"_blank\"><img src=\"images/icq_icon.png\" width=\"15\" height=\"15\" border=\"0\" /></a>"; &#125;
    if&#40;$row->hp == ""&#41;
           &#123;
           $hp = "";
           &#125;
        else
           &#123;
           //Der User hat eine HP Adresse angegeben&#58;
           $hp = "<a href=\"$row->hp\" target=\"_blank\"><img src=\"images/hp_icon.png\" width=\"17\" height=\"15\" border=\"0\" /></a>"; &#125;
    //Ausgabe
        &#123;echo "
       <center><table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">
      <tr class=\"guestbooktitle\">
        <td>Von $row->name</td>
    	<td>$email $icq $hp</td>
    	<td align=\"right\">am $row->datum</td>
      </tr>
        <td align=\"left\" valign=\"top\">$row->text</td>
      </tr>
    </table></center>";&#125;
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Gast
    Gast

    Standard

    ich hab zwar noch nciht so die ahnung von PHP, aber ich sehe, dass du if ja garnicht definierst. An deiner Stelle würde ich mit CASE arbeiten:

    <?php
    switch($site)
    {
    case news:
    $content = "news.php";
    break;
    case about:
    $content = "about.php";
    break;
    case links:
    $content = "links.php";
    break;
    case kontakt:
    $content = "kontakt.php";
    break;
    case imprint:
    $content = "imprint.php";
    break;
    case guestbook:
    $content = "gb.php";
    break;
    default:
    $content = "news.php";
    break;
    }
    ?>
    CASE ist zwar nur für Content gedacht, aber dafür lässt es sich bestimmt auch missbrauchen^^
    $row->email = $site (kannste natürlich nach belieben ändern - ich hatte nur gerade keine lust site in email umzutippen

    Ich hoffe ich hab dir geholfen...

  3. #3
    Forum Guru Avatar von driver
    Registriert seit
    10.04.2006
    Alter
    34
    Beiträge
    20.729
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    doch, macht er. schaumal genau hin !
    >> die icq-schreiberlinge bitte dies hier beachten



    1679 entdeckte Gottfried Wilhelm Leibniz das Binärsystem, bei einem Gespräch mit seiner Mutter: "Ja..., Nein..., Nein..., Nein..., Ja..., Ja..., Nein..."

  4. #4
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Marcel, die breaks müssen weg, sonst macht er nur das erste.
    Am Ende dann default: statt case "xy": und nur da break;.

    Viele liebe Grüße
    The User

  5. #5
    Bandit
    Gast

    Standard

    switch ist in dem falle sinnlos, genauso wie das weglassen von breaks beim switch. Ich habe das chaos-script mal etwas formatiert, damit der quellcode lesbar wird:
    Code:
    <?php
      if&#40;$row->email == ""&#41; 
      &#123; 
         $email = ""; 
      &#125; 
      else 
      &#123; 
         //Der User hat eine Email Adresse angegeben&#58; 
         $email = "<a href='mailto&#58;$row->email'>
                    [img]images/email_icon.png[/img]
                  </a>"; 
      &#125; 
      
      if&#40;$row->icq == ""&#41; 
      &#123; 
        $icq = ""; 
      &#125; 
      else 
      &#123; 
         //Der User hat eine ICQ Adresse angegeben&#58; 
         $icq = "<a href='http&#58;//www.icq.com/scripts/search.dll?to=$row->icq' target='_blank'>
                  [img]images/icq_icon.png[/img]
                 </a>"; 
      &#125; 
      
      if&#40;$row->hp == ""&#41; 
      &#123; 
         $hp = ""; 
      &#125; 
      else 
      &#123; 
        //Der User hat eine HP Adresse angegeben&#58; 
        $hp = "<a href='$row->hp' target='_blank'>
                [img]images/hp_icon.png[/img]
               </a>"; 
      &#125; 
      
      //Ausgabe 
      echo "<center>
              <table cellpadding='0' cellspacing='0' width='100%'> 
                <tr class='guestbooktitle'> 
                  <td>Von $row->name</td> 
                  <td>$email $icq $hp</td> 
                  <td align='right'>am $row->datum</td> 
                </tr> 
                 <td align='left' valign='top'>$row->text</td> 
                </tr> 
              </table>
            </center>";
    ?>
    da ist nichts falsch dran.

    Gruß
    bandit

  6. #6
    Gast

    Standard

    also auch die geordnete version hat nichts gebracht=(
    un sry dass mid dem case zeugs hab ich nich geplant?? aber driver meint ja das brauch ich nich..zumindest liegt dort nicht der fehler=)

  7. #7
    Bandit
    Gast

    Standard

    An diesem teil des scriptes liegt es nicht.

    Gruß
    bandit

  8. #8
    lippl...
    Gast

    Standard

    na dann bekommd ihr ebn das ganze:
    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http&#58;//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http&#58;//www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>News</title>
    </head>
    
    <body>
    <table cellpadding="0" cellspacing="0" align="center" width="600">
      <tr>
        <td><div style="margin-left&#58;150px;"><form method="post" action="gbsend.php">
          
    
    Name*&#58;
    
              <input name="name" size="40" type="text" />
              
    
            E-Mail&#58;
    
            <input name="email" type="text" size="40" value="" />
    
    		Homepage&#58;
    
            <input name="hp" type="text" size="40" value="" />
            
    
            ICQ
            &#58;
    
            <input name="icq" type="text" size="40" value="" />
          </p>
          
    
     Text*&#58;
    
              <textarea name="text" cols="40"
     rows="12" wrap="physical" type="text"></textarea>
              
    
              <input name="submit" type="submit" value="Absenden" />
              <input name="reset" type="reset" value="Zurücksetzen" />
    
          </p>
          </form></div></td>
      </tr>
      <tr>
        <td><?php
    $seite = $_GET&#91;"seite"&#93;;  //Abfrage auf welcher Seite man ist
    
    //Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1
    if&#40;!isset&#40;$seite&#41;&#41;
       &#123;
       $seite = 1;
       &#125;
    
    //Verbindung zu Datenbank aufbauen
    
    $link = mysql_connect&#40;"localhost","lippl1","passwort^^"&#41; or die &#40;"Keine Verbindung moeglich"&#41;;
    mysql_select_db&#40;"lippl1"&#41; or die &#40;"Die Datenbank existiert nicht"&#41;;
    
    
    //Eintr&auml;ge pro Seite&#58; Hier 15 pro Seite
    $eintraege_pro_seite = 5;
    
    //Ausrechen welche Spalte man zuerst ausgeben muss&#58;
    
    $start = $seite * $eintraege_pro_seite - $eintraege_pro_seite;
    
    //Tabelle Abfragen
    //Tabelle hei&szlig;t hier einfach&#58; Tabelle
    $abfrage = "SELECT * FROM guestbook ORDER BY datum DESC LIMIT $start, $eintraege_pro_seite";
    $ergebnis = mysql_query&#40;$abfrage&#41;;
    while&#40;$row = mysql_fetch_object&#40;$ergebnis&#41;&#41;
    
    //Überprüfung
    
    if&#40;empty&#40;$row->email&#41;&#41;
      &#123;
         $email = "";
      &#125;
      else
      &#123;
         //Der User hat eine Email Adresse angegeben&#58;
         $email = "<a href='mailto&#58;$row->email'>
                    [img]images/email_icon.png[/img]
                  </a>";
      &#125;
     
      if&#40;empty&#40;$row->icq&#41;&#41;
      &#123;
        $icq = "";
      &#125;
      else
      &#123;
         //Der User hat eine ICQ Adresse angegeben&#58;
         $icq = "<a href='http&#58;//www.icq.com/scripts/search.dll?to=$row->icq' target='_blank'>
                  [img]images/icq_icon.png[/img]
                 </a>";
      &#125;
     
      if&#40;empty&#40;$row->hp&#41;&#41;
      &#123;
         $hp = "";
      &#125;
      else
      &#123;
        //Der User hat eine HP Adresse angegeben&#58;
        $hp = "<a href='$row->hp' target='_blank'>
                [img]images/hp_icon.png[/img]
               </a>";
      &#125;
     
      //Ausgabe
      echo "<center>
              <table cellpadding='0' cellspacing='0' width='100%'>
                <tr class='guestbooktitle'>
                  <td>Von $row->name</td>
                  <td>$email $icq $hp</td>
                  <td align='right'>am $row->datum</td>
                </tr>
                 <td align='left' valign='top'>$row->text</td>
                </tr>
              </table>
            </center>";
    
    
    //Jetzt kommt das "Inhaltsverzeichnis",
    //sprich dort steht jetzt&#58; Seite&#58; 1 2 3 4 5
    
    
    //Wieviele Eintr&auml;ge gibt es &uuml;berhaupt
    
    //Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten
    //also der gleiche Text wie in der Variable $abfrage, blo&szlig; das hier das LIMIT fehlt
    //Sonst funktioniert die Bl&auml;tterfunktion nicht richtig,
    //und hier kann nur 1 Feld abgefragt werden, also id
    
    $result = mysql_query&#40;"SELECT id FROM news"&#41;;
    $menge = mysql_num_rows&#40;$result&#41;;
    
    //Errechnen wieviele Seiten es geben wird
    $wieviel_seiten = $menge / $eintraege_pro_seite;
    
    //Ausgabe der Seitenlinks&#58;
    echo "<div align=\"center\">";
    echo "Seite&#58; ";
    
    
    //Ausgabe der Links zu den Seiten
    for&#40;$a=0; $a < $wieviel_seiten; $a++&#41;
       &#123;
       $b = $a + 1;
    
       //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben
       if&#40;$seite == $b&#41;
          &#123;
          echo "  $b ";
          &#125;
    
       //Aus dieser Seite ist der User nicht, also einen Link ausgeben
       else
          &#123;
          echo "  <a href=\"?seite=$b\">$b</a> ";
          &#125;
    
    
       &#125;
    echo "</div>";
    ?></td>
      </tr>
    </table>
    </body>
    </html>
    un die gbsend.php:
    Code:
    <?php
    $link = mysql_connect&#40;"localhost","lippl1","passwort^^"&#41; or die &#40;"Keine Verbindung moeglich"&#41;;
    mysql_select_db&#40;"lippl1"&#41; or die &#40;"Die Datenbank existiert nicht"&#41;;
    ?>
              <?php 
    $name = $_POST&#91;"name"&#93;;
    $text = $_POST&#91;"text"&#93;;
    $email = $_POST&#91;"email"&#93;;
    $icq = $_POST&#91;"icq"&#93;;
    $hp = $_POST&#91;"hp"&#93;;
    
    $datum = date&#40;"d.m.Y H&#58;i"&#41;;
    
    if&#40;$name == "" OR $text == ""&#41;
        &#123;
       echo "* die Felder \"Name\" und \"Text\" sind Pflicht
    ";
       exit; //Script Ablauf wird unterbrochen, Eintrag wird nicht gespeichert
       &#125;
    
    $eintrag = "INSERT INTO guestbook &#40;name, text, email, hp, icq, datum&#41; VALUES &#40;'$name', '$text', '$email', '$hp', '$icq', '$datum'&#41;";
    $eintragen = mysql_query&#40;$eintrag&#41;;
    ?>
              <?php
    if&#40;$eintragen == true&#41;
       &#123;
       echo "<a href=\"index.php?site=guestbook\">Beitrag erfolgreich gespeichert</a>";
       &#125;
    else
       &#123;
       echo "<a href=\"javascript&#58;history.back&#40;&#41;\">Fehler beim Speichern</a>";
       &#125;
    
     ?>

  9. #9
    Bandit
    Gast

    Standard

    Da fehlen klammern bei der while-schleife. Wenn man ordentlich einrücken würde, würde man das selber erkennen.

    Gruß
    bandit

  10. #10
    Gast

    Standard

    wohoo yeahh THX das war wirklich der fehler..

    echd nochmal vieln dank

Ähnliche Themen

  1. href="#name"+ target = geht nich
    Von Raziel im Forum HTML & CSS Forum
    Antworten: 5
    Letzter Beitrag: 17.06.2007, 16:01
  2. switch geht nich
    Von tommy121288 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 8
    Letzter Beitrag: 21.05.2006, 16:05
  3. <select> geht nich?
    Von Sleeme im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 14.12.2005, 01:39
  4. <input width=100> geht nich?
    Von Ik4ru5 im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 18.07.2005, 19:33
  5. kein fehler aber geht nich!
    Von sTeFf im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 9
    Letzter Beitrag: 14.04.2005, 18:03

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •