1. Dashboard
  2. Artikel
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. HTML - Webmaster Forum
  2. Programmierung - Entwickler Forum
  3. PHP Forum - Apache - CGI - Perl - JavaScript und Co.

if abfrage problem

  • MichaelKRI
  • 26. September 2010 um 15:23
  • 1
  • 2
  • MichaelKRI
    Schüler
    Beiträge
    66
    • 26. September 2010 um 15:23
    • #1

    Hallo ALL
    Ich habe eine Rangliste siehe hier

    Nun habe ich eine rangliste.php in dem das steht

    PHP
    if($row['turnierspiele']>49) $member2 = "<img src=\"grafik/vip.gif\" border=\"0\" alt=\"".$row['nick']." ist Vip Spieler, dazu kommt man ab 50 Turnierteilnahmen\">";
        else $member2="";
     if($row['turnierspiele']>149) $member4 = "<img src=\"grafik/gold.gif\" border=\"0\" alt=\"".$row['nick']." ist Gold Spieler, dazu kommt man ab 150 Turnierteilnahmen\">";
        else $member4="";
     
     if($row['turnierspiele']>249) $member5 = "<img src=\"grafik/platinum.gif\" border=\"0\" alt=\"".$row['nick']." ist Platinum Spieler, dazu kommt man ab 250 Turnierteilnahmen\">";
        else $member5="";
     
     if($row['turnierspiele']>349) $member6 = "<img src=\"grafik/diamand.gif\" border=\"0\" alt=\"".$row['nick']." ist diamand Spieler, dazu kommt man ab 350 Turnierteilnahmen\">";
        else $member6="";



    Ab ZAHL 50 bekommt der spieler ein icon dazu ab 150 wieder eins usw
    Blos was ich nicht hinbekomme ist folgendes
    Ich möchte das Jemand ab 50 ein ICON bekommt und bei 150 ein anderes und das von 50 weg ist ab 250 wieder ein anderes so das das von 150 weg ist usw

    Ich danke im vorraus für eure Hilfe
    Mfg
    Micha

  • Pion
    Gast
    • 26. September 2010 um 15:27
    • #2

    Dann nehme eine Variable und überschreibe diese sprich nicht $member4 $member5 etc nehmen sondern zb nur $member

    Aber zeig mal mehr code

    mfg

    Einmal editiert, zuletzt von Pion (26. September 2010 um 15:48)

  • MichaelKRI
    Schüler
    Beiträge
    66
    • 26. September 2010 um 16:59
    • #3

    Hier ist der ganze code

    PHP
    <style type="text/css">
    <!--
    .Stil5 {color: #CCCCCC; }
    .Stil6 {color: #0000FF}
    -->
    </style>
    <?php
    $filename="rangliste.php";
    require("global.php");
    // Design übermittelt von außen per Parameter auflisten
    if(isset($_REQUEST['backgroundgrafik'])) $liga['hintergrundbild'] = $_REQUEST['backgroundgrafik'];
    if(isset($_REQUEST['backgroundcolor'])) $liga['hintergrundfarbe'] = $_REQUEST['backgroundcolor'];
    if(isset($_REQUEST['textcolor'])) $liga['textcolor'] = $_REQUEST['textcolor'];
    if(isset($_REQUEST['linkcolor'])) $liga['linkfarbe'] = $_REQUEST['linkcolor'];
    if(isset($_REQUEST['vlinkcolor'])) $liga['vlinkfarbe'] = $_REQUEST['vlinkcolor'];
    if(isset($_REQUEST['alinkcolor'])) $liga['alinkfarbe'] = $_REQUEST['alinkcolor'];
    if(isset($_REQUEST['tabellenkopffarbe'])) $liga['tabellenkopffarbe'] = $_REQUEST['tabellenkopffarbe'];
    if(isset($_REQUEST['tabellenzellenfarbe'])) $liga['tabellenzellenfarbe'] = $_REQUEST['tabellenzellenfarbe'];
    
    
    if(isset($_GET['sort'])) $sort = $_GET['sort'];
    else $sort = "rang";
    if($sort=="rang"||$sort=="nick"||$sort=="letztes_spiel"||$sort=="bestrang") $order = "ASC";
    else $order = "DESC";
    $jetzt = time();
    $eintag = 24*60*60;
    $result = query("SELECT * FROM lt_".$liga['id']."_user WHERE sperre='0' ORDER BY $sort $order, nick ASC");
    $x=1;
    while($row=get_satz($result))    {
        $einstellungen = explode(",", $row['einstellungen']);
        $inaktiv = $jetzt-$row['letztes_spiel'];
        $inaktiv = $inaktiv/$eintag;
        $inaktiv = runden( $inaktiv, 1);
        if($row['infolge']==0) $row['infolge']="n.a.";
        if($row['infolge']>0) $row['infolge']="+".$row['infolge']."";
        if($sort!="rang") $x=$row['rang'];
        if($einstellungen[0]==1) $email_link = "<a href=\"mailto:".$row['email']."\"><img src=\"grafik/e.gif\" border=\"0\" alt=\"".$row['nick']." eine Mail schreiben\"></a>";
        else $email_link = "";
        if($row['multiplikator']>1) $member = "<img src=\"grafik/m.gif\" border=\"0\" alt=\"".$row['nick']." ist Abo Spieler\">";
        else $member="";
     
        if($row['gruppeid']==0) $member1 = "<img src=\"grafik/m.gif\" border=\"0\" alt=\"".$row['nick']." ist Liga Admin\">";
        else $member1="";
     
     if($row['turnierspiele']>49) $member2 = "<img src=\"grafik/vip.gif\" border=\"0\" alt=\"".$row['nick']." ist Vip Spieler, dazu kommt man ab 50 Turnierteilnahmen\">";
        else $member2="";
     
     if($row['gruppeid']==0) $member3 = "<img src=\"grafik/tl.gif\" border=\"0\" alt=\"".$row['nick']." ist Turnier Leiter\">";
        else $member3="";
     
     if($row['gruppeid']==2) $member8 = "<img src=\"grafik/tl.gif\" border=\"0\" alt=\"".$row['nick']." ist Turnier Leiter\">";
        else $member8="";
     
     if($row['gruppeid']==1) $member9 = "<img src=\"grafik/tl.gif\" border=\"0\" alt=\"".$row['nick']." ist Turnier Leiter\">";
        else $member9="";
     
     if($row['gruppeid']==3) $member10 = "<img src=\"grafik/tl.gif\" border=\"0\" alt=\"".$row['nick']." ist Turnier Leiter\">";
        else $member10="";
     
     if($row['gruppeid']==4) $member11 = "<img src=\"grafik/tl.gif\" border=\"0\" alt=\"".$row['nick']." ist Turnier Leiter\">";
        else $member11="";
     
     if($row['gruppeid']==5) $member12 = "<img src=\"grafik/tl.gif\" border=\"0\" alt=\"".$row['nick']." ist Turnier Leiter\">";
        else $member12="";
     
     if($row['gruppeid']==6) $member13 = "<img src=\"grafik/tl.gif\" border=\"0\" alt=\"".$row['nick']." ist Turnier Leiter\">";
        else $member13="";
     
     if($row['gruppeid']==7) $member14 = "<img src=\"grafik/tl.gif\" border=\"0\" alt=\"".$row['nick']." ist Turnier Leiter\">";
        else $member14="";
     
     if($row['turnierspiele']>149) $member4 = "<img src=\"grafik/gold.gif\" border=\"0\" alt=\"".$row['nick']." ist Gold Spieler, dazu kommt man ab 150 Turnierteilnahmen\">";
        else $member4="";
     
     if($row['turnierspiele']>249) $member5 = "<img src=\"grafik/platinum.gif\" border=\"0\" alt=\"".$row['nick']." ist Platinum Spieler, dazu kommt man ab 250 Turnierteilnahmen\">";
        else $member5="";
     
     if($row['turnierspiele']>349) $member6 = "<img src=\"grafik/diamand.gif\" border=\"0\" alt=\"".$row['nick']." ist diamand Spieler, dazu kommt man ab 350 Turnierteilnahmen\">";
        else $member6="";
     
     $land = $row['land'];
        $p = $row['gewonnen'] *3;
     $turnierwinner = $row['turnierwinner'];
     $turnierspiele = $row['turnierspiele'];
     $turniere_gebaut = $row['turniere_gebaut'];
     $diff = $row['gewonnen'] - $row['verloren'];
     $lol = $row['gewonnen'] + $row['verloren'];
     $b = ":";
     if(($row['gewonnen'] + $row['verloren']) === 0) {
      $prozent = "0 %";
     } else {
      $prozent = round((100 / ($row['gewonnen'] + $row['verloren'])) * $row['gewonnen'],3)." %";
     }
        eval ("\$rangliste_bit .= \"".lade_tpl("rangliste_bit")."\";");
        $x++;
    }
    
    
    eval ("\$output = \"".lade_tpl("rangliste")."\";");
    echo "$output";
    ?><br />
    <table width="200" border="1">
      <tr>
        <td height="305" bgcolor="#666666"><table width="441" border="1">
          <tr>
            <td width="40" bgcolor="#666666"><div align="center" class="Stil5">Icons</div></td>
            <td width="385" bgcolor="#666666"><div align="center" class="Stil5">Bedeutung</div></td>
          </tr>
          <tr>
            <td bgcolor="#666666"><div align="center" class="Stil5"><img src="http://onlinebillardfreunde.de/onlineliga/ts/grafik/m.gif" width="14" height="13" /><img src="http://onlinebillardfreunde.de/onlineliga/ts/grafik/m.gif" width="14" height="13" /></div></td>
            <td bgcolor="#666666"><span class="Stil5">Abo Spieler </span></td>
          </tr>
          <tr>
            <td bgcolor="#666666"><div align="center" class="Stil5"><img src="http://onlinebillardfreunde.de/onlineliga/ts/grafik/m.gif" width="14" height="13" /></div></td>
            <td bgcolor="#666666"><span class="Stil5">Liga-Admin</span></td>
          </tr>
          <tr>
            <td bgcolor="#666666"><div align="center" class="Stil5"><img src="http://onlinebillardfreunde.de/onlineliga/ts/grafik/tl.gif" width="16" height="16" /></div></td>
            <td bgcolor="#666666"><span class="Stil5">Turnierleiter</span></td>
          </tr>
          <tr>
            <td bgcolor="#666666"><div align="center" class="Stil5"><img src="http://onlinebillardfreunde.de/onlineliga/ts/grafik/diamand.gif" width="16" height="16" /></div></td>
            <td bgcolor="#666666"><span class="Stil5">DIAMAND Spieler, wird man ab 350 Turnierteilnahmen</span></td>
          </tr>
          <tr>
            <td bgcolor="#666666"><div align="center" class="Stil5"><img src="http://onlinebillardfreunde.de/onlineliga/ts/grafik/platinum.gif" width="16" height="16" /></div></td>
            <td bgcolor="#666666"><span class="Stil5">PLATINIUM Spieler, wird man ab 250 Turnierteilnahmen</span></td>
          </tr>
          <tr>
            <td bgcolor="#666666"><div align="center" class="Stil5"><img src="http://onlinebillardfreunde.de/onlineliga/ts/grafik/gold.gif" width="16" height="16" /></div></td>
            <td bgcolor="#666666"><span class="Stil5">GOLD Spieler, wird man ab 150 Turnierteilnahmen </span></td>
          </tr>
          <tr>
            <td bgcolor="#666666"><div align="center" class="Stil5"><img src="http://onlinebillardfreunde.de/onlineliga/ts/grafik/vip.gif" width="16" height="16" /></div></td>
            <td bgcolor="#666666"><span class="Stil5">VIP Spieler, wird man ab 50 Turnierteilnahmen </span></td>
          </tr>
        </table>
        <br />
        <span class="Stil5">Alle auszeichnungen kommen von heute an von alleine zu den Spielern<br />
    ohne das man diese extra eintragen muss.<br />
    <br />
    Bei unserem Fair Play Club bedeuten sie, das diese Spieler zb an<br />
    Turnieren teilnehmen d&uuml;rfen wo wir sachpreise oder Pokale verschicken. </span></td>
      </tr>
    </table>
    <p><br />
      <br />
    </p>
    Alles anzeigen


    Mfg

  • Pion
    Gast
    • 26. September 2010 um 17:12
    • #4

    Ja dann nehm doch eine Variable und nicht so viele

    und mach aus

    Code
    [COLOR=#000000][COLOR=#007700]
    eval ([/COLOR][COLOR=#DD0000]"\$output = \""[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]lade_tpl[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"rangliste"[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#DD0000]"\";"[/COLOR][COLOR=#007700]);
    echo [/COLOR][COLOR=#DD0000]"$output"[/COLOR][COLOR=#007700];[/COLOR][/COLOR]


    mal sowas

    Code
    [COLOR=#000000][COLOR=#007700]
    echo [/COLOR][COLOR=#DD0000][/COLOR][COLOR=#0000BB]lade_tpl[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"rangliste"[/COLOR][COLOR=#007700])[/COLOR][COLOR=#007700];[/COLOR][/COLOR]
  • MichaelKRI
    Schüler
    Beiträge
    66
    • 26. September 2010 um 18:36
    • #5

    Genau das ist ja das problem
    --Ja dann nehm doch eine Variable und nicht so viele--
    Bekomme das nicht gebacken das in einer Variable unterzubringen wichtig sind für mich nur diese in einer unter zu bringen

    PHP
    if($row['turnierspiele']>49) $member2 = "<img src=\"grafik/vip.gif\" border=\"0\" alt=\"".$row['nick']." ist Vip Spieler, dazu kommt man ab 50 Turnierteilnahmen\">";
        else $member2="";
     if($row['turnierspiele']>149) $member4 = "<img src=\"grafik/gold.gif\" border=\"0\" alt=\"".$row['nick']." ist Gold Spieler, dazu kommt man ab 150 Turnierteilnahmen\">";
        else $member4="";
     
     if($row['turnierspiele']>249) $member5 = "<img src=\"grafik/platinum.gif\" border=\"0\" alt=\"".$row['nick']." ist Platinum Spieler, dazu kommt man ab 250 Turnierteilnahmen\">";
        else $member5="";
     
     if($row['turnierspiele']>349) $member6 = "<img src=\"grafik/diamand.gif\" border=\"0\" alt=\"".$row['nick']." ist diamand Spieler, dazu kommt man ab 350 Turnierteilnahmen\">";
        else $member6="";


    Mfg

  • Pion
    Gast
    • 26. September 2010 um 18:46
    • #6
    Code
    [COLOR=#000000][COLOR=#007700]if([/COLOR][COLOR=#0000bb]$row[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'turnierspiele'[/COLOR][COLOR=#007700]]>[/COLOR][COLOR=#0000bb]49[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000bb]$status [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"<img src=\"grafik/vip.gif\" border=\"0\" alt=\""[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]$row[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'nick'[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#dd0000]" ist Vip Spieler, dazu kommt man ab 50 Turnierteilnahmen\">"[/COLOR][COLOR=#007700];
       [/COLOR][COLOR=#007700]
     if([/COLOR][COLOR=#0000bb]$row[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'turnierspiele'[/COLOR][COLOR=#007700]]>[/COLOR][COLOR=#0000bb]149[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000bb]$[/COLOR][/COLOR][COLOR=#000000][COLOR=#0000bb]status [/COLOR][/COLOR][COLOR=#000000][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"<img src=\"grafik/gold.gif\" border=\"0\" alt=\""[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]$row[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'nick'[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#dd0000]" ist Gold Spieler, dazu kommt man ab 150 Turnierteilnahmen\">"[/COLOR][COLOR=#007700];
       [/COLOR][COLOR=#007700]
     
     if([/COLOR][COLOR=#0000bb]$row[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'turnierspiele'[/COLOR][COLOR=#007700]]>[/COLOR][COLOR=#0000bb]249[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000bb]$[/COLOR][/COLOR][COLOR=#000000][COLOR=#0000bb]status [/COLOR][/COLOR][COLOR=#000000][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"<img src=\"grafik/platinum.gif\" border=\"0\" alt=\""[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]$row[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'nick'[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#dd0000]" ist Platinum Spieler, dazu kommt man ab 250 Turnierteilnahmen\">"[/COLOR][COLOR=#007700];
    [/COLOR][COLOR=#007700]
     
     if([/COLOR][COLOR=#0000bb]$row[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'turnierspiele'[/COLOR][COLOR=#007700]]>[/COLOR][COLOR=#0000bb]349[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000bb]$[/COLOR][/COLOR][COLOR=#000000][COLOR=#0000bb]status [/COLOR][/COLOR][COLOR=#000000][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"<img src=\"grafik/diamand.gif\" border=\"0\" alt=\""[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]$row[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'nick'[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#dd0000]" ist diamand Spieler, dazu kommt man ab 350 Turnierteilnahmen\">"[/COLOR][COLOR=#007700];
      [/COLOR][/COLOR]

    In deiner Tpl oder wie auch immer die aussieht einfach das Status ausgeben

    Einmal editiert, zuletzt von Pion (26. September 2010 um 18:52)

  • MichaelKRI
    Schüler
    Beiträge
    66
    • 26. September 2010 um 19:09
    • #7

    Hi danke für die hilfe aber ein problem besteht trotzdem noch
    SIEHE HIER

    Jeder der normal ab 50 das bekommen soll


    Bekommt es auch ab 0 Turnierspiele
    Mfg Micha

  • Pion
    Gast
    • 26. September 2010 um 19:18
    • #8

    Du musst dann die Status Variable vor jedem durchlauf schon auf NULL stellen...

    Code
    [COLOR=#000000][COLOR=#007700]while([/COLOR][COLOR=#0000BB]$row[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]get_satz[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$result[/COLOR][COLOR=#007700]))    {
    [/COLOR][/COLOR][FONT=monospace]$status = NULL;  [/FONT]
    [COLOR=#000000][COLOR=#007700]    [/COLOR][COLOR=#0000BB]$einstellungen [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]explode[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]","[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$row[/COLOR][COLOR=#007700][[/COLOR][COLOR=#DD0000]'einstellungen'[/COLOR][COLOR=#007700]]);[/COLOR][/COLOR]


    Aber durchblicken tu ich bei dir da nicht wirklich, wenn es was gebracht hat ist ja gut

  • MichaelKRI
    Schüler
    Beiträge
    66
    • 26. September 2010 um 19:35
    • #9

    Hi Danke vielmals nun hat es geklapt
    die NULL wars *g*
    Jetzt ist alels ok siehe hIER
    Danke vielmals für die Hilfe
    Mfg
    Micha

  • SinnlosS
    Profi
    Reaktionen
    8
    Beiträge
    666
    • 27. September 2010 um 18:08
    • #10

    Ist zwar nur eine Kleinigkeit und wirkt sich nicht auf die Funktionalität aus, aber du kannst das ganze performanter gestalten, wenn du die ganzen if-Abfragen zu einem if-elseif-Konstrukt zusammenfasst.
    Dafür brauchst du nur die Reihenfolge der Abfragen umdrehen, dann werden nicht in jedem Schleifendurchlauf alle Bedingungen geprüft, sondern nur bis eine erfüllt wird. Bei jedem Diamant-Member sparst du damit drei Überprüfungen, bei jedem Platinum-Member zwei und bei jedem Gold-Member eine.

    PHP
    if($row['turnierspiele']>349) $status = "<img src=\"grafik/diamand.gif\" border=\"0\" alt=\"".$row['nick']." ist diamand Spieler, dazu kommt man ab 350 Turnierteilnahmen\">";
    elseif($row['turnierspiele']>249) $status = "<img src=\"grafik/platinum.gif\" border=\"0\" alt=\"".$row['nick']." ist Platinum Spieler, dazu kommt man ab 250 Turnierteilnahmen\">";
    elseif($row['turnierspiele']>149) $status = "<img src=\"grafik/gold.gif\" border=\"0\" alt=\"".$row['nick']." ist Gold Spieler, dazu kommt man ab 150 Turnierteilnahmen\">";
    elseif($row['turnierspiele']>49) $status = "<img src=\"grafik/vip.gif\" border=\"0\" alt=\"".$row['nick']." ist Vip Spieler, dazu kommt man ab 50 Turnierteilnahmen\">";

    Ist jetzt nichts allzu gravierendes, aber Kleinvieh macht ja bekanntlich auch Mist. :)

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Pion
    Gast
    • 27. September 2010 um 18:19
    • #11

    Wenn er jetzt noch switch nimmt ist er nochn ticken schneller (mükroosekunde:P) und es ist sauberer zu lesen :P

  • SinnlosS
    Profi
    Reaktionen
    8
    Beiträge
    666
    • 27. September 2010 um 18:27
    • #12

    Kann man mit switch() größer/kleiner-Überprüfungen machen? Das ist mir neu, wie sieht da die Notation aus?

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Pion
    Gast
    • 27. September 2010 um 18:35
    • #13
    PHP
    <?php 
    $muh = 100;
    
    
    switch ($muh) {
    
    
    case ($muh < 101):
    echo "Kleiner";
    break;
    
    
    case ($muh > 99):
    echo "Größer";
    break;
    
    
    }
    
    
    ?>
    Alles anzeigen
  • SinnlosS
    Profi
    Reaktionen
    8
    Beiträge
    666
    • 27. September 2010 um 18:37
    • #14

    Cool danke, wieder was dazu gelernt :)

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Joshua
    Anfänger
    Beiträge
    8
    • 27. September 2010 um 19:53
    • #15

    Aber Switch braucht doch genauso lange? Weil es ja eigentlich genau das gleiche ist wie if - elseif abfrage.

  • SinnlosS
    Profi
    Reaktionen
    8
    Beiträge
    666
    • 27. September 2010 um 20:02
    • #16

    Dass switch da jetzt schneller ist als ein if-elseif-Konstrukt wage ich grad auch zu bezweifeln, werde ich aber bei Gelegenheit mal aus Neugier testen.

    Ich finde aber eine Switch-Anweisung übersichtlicher als ein ellenlanges if-elseif-Konstrukt. Daher bevorzuge ich im Zweifelsfall immer switch.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Dodo
    Jedi Ritter
    Reaktionen
    1
    Beiträge
    3.774
    • 27. September 2010 um 20:10
    • #17
    Zitat von Joshua

    Aber Switch braucht doch genauso lange? Weil es ja eigentlich genau das gleiche ist wie if - elseif abfrage.



    Von der Logik her, ja - von der internen Verarbeitung, nein.
    Wie PHP das regelt, weiß ich nicht, aber andere Sprachen regeln ein if-else-konstrukt mit lauter kleinen Sprüngen, die immer aufs nächste else verweisen. Ein switch-case-Konstrukt arbeitet mit Sprungtabellen und ist deshalb schneller.
    Aber wie gesagt: Wie PHP das intern verarbeitet, weiß ich nicht.

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • SinnlosS
    Profi
    Reaktionen
    8
    Beiträge
    666
    • 27. September 2010 um 20:47
    • #18

    Switch bietet zudem dank 'default:' den Vorteil Programmlogik die in verschiedenen cases - aber nicht in allen - vorkommt zusammenzufassen, indem man bei diesen cases auf das 'break;' verzichtet. Bei einem if-elseif-Konstrukt musst du eine weitere if-Abfrage bemühen, den wiederkehrenden Code in allen entsprechenden Fällen wiederholen, oder in eine Funktion auslagern.
    Kommt jetzt nicht so häufig vor, ich fand es aber das ein oder andere Mal schon durchaus praktisch.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Joshua
    Anfänger
    Beiträge
    8
    • 27. September 2010 um 20:55
    • #19

    Ja, ich benutze selber Switch ;). Aber schön zu wissen das es kürzer ist :D. Dann mache ich ja alles richtig. Ich hätte persönlich ja gedacht das es eigentlich das gleich ist und switch in elseif intern umwandelt und das genauso läuft.

  • SinnlosS
    Profi
    Reaktionen
    8
    Beiträge
    666
    • 27. September 2010 um 21:06
    • #20

    http://www.php-performance.de/kontrollstrukt…tch-ternaer.php

    Guck mal an, hätte ich jetzt so nicht vermutet. ^^

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

    • 1
    • 2

Tags

  • hilfe
  • gif
  • color
  • email
  • http
  • spiel
  • style
  • design
  • grafik
  • problem
  • member
  • img
  • code
  • php
  • tabelle
  • zahl
  • div
  • border
  • gold
  • css
  • spieler
  • else
  • variable
  • ico
  • icon
  • select
  • rangliste
  • url
  • vip

Benutzer online in diesem Thema

  • 1 Besucher
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
Zitat speichern