• 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

  • 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)

  • Hier ist der ganze code


    Mfg

  • 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]
  • 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

  • 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)

  • 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

  • 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

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

  • 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

  • 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

  • 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

  • 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...

  • 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

  • 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.