Avatar billede oonofearoo Nybegynder
15. maj 2005 - 02:44 Der er 3 kommentarer

Case inde i for-loop

Er det muligt at lægge en en switch case inde i et for loop?

switch ($_GET['system']) {
    default:
    for ($x=0; $x<count($dir_arr); $x++) {
        echo "'case' $dir_arr[$x]:";
        $system = $dir_arr[$x];
        if ($dir_arr[$x] == 'GBA' || $dir_arr[$x] == 'NDS') {
          $sort = 'DESC';
        }
        echo "break;";
    }
}

som den er nu echoer den bare: 'case' GBA:break;'case' SNES:break;
men hvis jeg fjerner echo så siger den unexpected echo, og break; vil jo bryde ud af for loopet, håber virkelig det er muligt da jeg helst ikke gider have 106 linier switch case...
Avatar billede barklund Nybegynder
15. maj 2005 - 07:32 #1
En switch er kun til statiske cases. En dynamisk switch (som du er ude efter), er jo bare en dynamisk sammenligning med elementerne - en af gangen:

for ($x = 0; $x < count($dir_arr); $x++) {
    if ($_GET['system'] == $dir_arr[$x]) {
        $system = $dir_arr[$x];
        if ($dir_arr[$x] == 'GBA' || $dir_arr[$x] == 'NDS') {
            $sort = 'DESC';
        }
    }
}

Mere er der vel sådan set ikke i det :)

--
Morten Barklund
Avatar billede oonofearoo Nybegynder
15. maj 2005 - 14:39 #2
jeg tænkte bare at en ikke venlig person så kunne ændre url'en og få MySQL til at crashe. Men havde selvføgelig ikke lige tænkt over:
   
    if ($_GET['system'] == $dir_arr[$x]) {

Så opret et svar så du kan få dine points.
Avatar billede barklund Nybegynder
15. maj 2005 - 15:24 #3
Så du kan bare udvælge i en SQL-sætning. Så er det helt vildt fjollet at udtrække samtlige rækker og finde den, der matcher - hvis det kan lave i en enkelt SQL-sætning.

Og hvis du er nervøs for, at folk laver en url med ' eller tilsvarende, i så kan du jo bare fyre det igennem mysql_real_escape_string først.

--
Morten Barklund
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester