Avatar billede blackscorpion Nybegynder
26. februar 2006 - 15:10 Der er 25 kommentarer og
1 løsning

stort switch problem.

Hey Eksperter.

Sidder med følgende kode, og den virker bare ikke som jeg vil have den til.

###### Kode ######
switch($_GET['sortby']) {
case (!isset($_GET['sortby'])) :
  $sortby = "music";
break;
case($_GET['sortby'] != "music" OR $_GET['sortby'] != "title" OR $_GET['sortby'] != "view_count"):
  $sortby = "music";
break;
}
###### Kode Slut ######

Det jeg skal have den til, er at HVIS $_GET['sortby'] ikke er sat, skal den sættes til "music" , og hvis $_GET['sortby'] ikke er enten: music, title eller view_count, skal den også sættes til music.

Nogle der kan spotte fejlen ?

- BlackScorpion.
Avatar billede erikjacobsen Ekspert
26. februar 2006 - 15:15 #1
Ja, du skal bare bruge if-er. Det du skriver er noget vrøvl. Noget i retning af:

if (!isset($_GET['sortby'])) { $sortby="music"; } else { $sortby=$_GET['sortby']; }
if ($sortby != "music" || $sortby != "title" || $sortby != "view_count") {  $sortby = "music"; }
Avatar billede blackscorpion Nybegynder
26. februar 2006 - 15:17 #2
hvorfor er det noget vrøvl ? *G*
Avatar billede blackscorpion Nybegynder
26. februar 2006 - 15:19 #3
hmm sjovt.. din virker heller ikke...
Avatar billede erikjacobsen Ekspert
26. februar 2006 - 15:20 #4
Der er så mange fejl i det du skriver, så det er bare vrøvl. Glem det.

Men ja, med en lille ændring:

if (!isset($_GET['sortby'])) { $sortby="music"; } else { $sortby=$_GET['sortby']; }
if ($sortby != "music" && $sortby != "title" && $sortby != "view_count") {  $sortby = "music"; }
Avatar billede blackscorpion Nybegynder
26. februar 2006 - 15:21 #5
jamen fortæl mig dog hvad fejlen er, så jeg ikke laver den igen ?
Avatar billede blackscorpion Nybegynder
26. februar 2006 - 15:23 #6
prøvede før jeg skrev her, at ændre OR til && i min switch før, og det hjalp ikke.

switch($_GET['sortby']) {
case (!isset($_GET['sortby'])) :
  $sortby = "music";
break;
case($_GET['sortby'] != "music" && $_GET['sortby'] != "title" && $_GET['sortby'] != "view_count"):
  $sortby = "music";
break;
default:
  $sortby = $_GET['sortby'];
break;
}

vil den her fejle ?
Avatar billede erikjacobsen Ekspert
26. februar 2006 - 15:24 #7
Det har jeg ikke tålmodighed til. Men kig på eksemplerne her: http://dk2.php.net/switch
Avatar billede blackscorpion Nybegynder
26. februar 2006 - 15:25 #8
been there done that. ;)
Avatar billede erikjacobsen Ekspert
26. februar 2006 - 15:25 #9
15:23:40: helt forkert
Avatar billede blackscorpion Nybegynder
26. februar 2006 - 15:25 #10
okey sjovt... for den virker perfekt her ?
Avatar billede morhan Novice
26. februar 2006 - 15:31 #11
hvis du skal lave det hele i en switch, og det skal give lidt mere mening:

switch($sortby = (isset($_GET['sortby']) ? $_GET['sortby'] : "")){
    case "music":
    case "title":
    case "view_count":
        break;
    default:
        $sortby = "music";
}
Avatar billede erikjacobsen Ekspert
26. februar 2006 - 15:34 #12
"virker perfekt"? Ikke hos mig ;)
Avatar billede blackscorpion Nybegynder
26. februar 2006 - 15:35 #13
switch($sortby = (isset($_GET['sortby']) ? $_GET['sortby'] : "")){

den del forstår jeg ikke... kan godt se at den skal være sat osv... men

? $_GET['sortby'] : ""

hvad gør det, og hvorfor sat op på den måde ?
Avatar billede blackscorpion Nybegynder
26. februar 2006 - 15:36 #14
erik -> okey underligt.. for den kører som den skal her..

kører med en standard php opsætning på apache, på ubuntu 5.10 linux.
Avatar billede erikjacobsen Ekspert
26. februar 2006 - 15:40 #15
Hvilke tilfælde tester du?
Avatar billede blackscorpion Nybegynder
26. februar 2006 - 15:43 #16
okey...

har nogle udtræk fra mysql, og music, title og view_count er så links man kan sortere på.

og for at folk så ikke ændre på det, f.eks prøver at teste på "knud".. så sker der jo ikke noget.

så det er 3 simple ting den tester op imod.
Avatar billede erikjacobsen Ekspert
26. februar 2006 - 15:44 #17
Hvad med den 4. - at der sket ikke står ?sortby=... i urlen?
Avatar billede erikjacobsen Ekspert
26. februar 2006 - 15:45 #18
Hvad med den 4. - at der slet ikke står ?sortby=... i urlen?        ;)
Avatar billede blackscorpion Nybegynder
26. februar 2006 - 16:13 #19
jamen det er jo !isset($_GET['sortby']) der tester den...
Avatar billede blackscorpion Nybegynder
26. februar 2006 - 16:14 #20
og uanset om den står i url'en eller ej, så vil den jo altid på en eller anden måde være der, hvad enten man sotere efter id eller hvad man nu vælger.
Avatar billede erikjacobsen Ekspert
26. februar 2006 - 16:36 #21
Jamen jeg opgiver at diskutere med dig. Til slut blot:
  1) Jeg får, som forventet, en ikke-rimelig reaktion på en manglende sortby i url-en. Hvis du ikke får det er du heldig, og skal helst ikke flytte dit site til en anden PHP-installering.
  2) Lad være med at vise din kode med din switch-sætning til andre, der har forstand på PHP, med mindre du synes det er rart at de griner af dig.

Du har fået to gode løsninger, og jeg er ligeglad med hvad du bruger ;)
Avatar billede blackscorpion Nybegynder
26. februar 2006 - 16:48 #22
switch($sortby = (isset($_GET['sortby']) ? $_GET['sortby'] : "")){
    case "music":
    case "title":
    case "view_count":
        break;
    default:
        $sortby = "music";
}

bruger den her nu.

og diskutere skam ikke med dig, argumentere for hvad der sker her hos mig, det er alt. ;)

Og vil sådan set gerne have at folk griner af mig, og retter på mig.

Hvis man ikke kan li det, hvordan skal man så kunne tage konstruktiv kritik ? ;)
Avatar billede erikjacobsen Ekspert
26. februar 2006 - 17:24 #23
Så skal det nok virke. At din egen konstruktion næsten virkede er lidt af et tilfælde ... :)
Avatar billede blackscorpion Nybegynder
26. februar 2006 - 17:44 #24
næsten virkede ?? den virkede da som den skulle... at den så ikke var optimal, og mega fejl befængt, er jo så en anden side af sagen, men som man siger:

Man lærer noget nyt hver dag. ;)
Avatar billede blackscorpion Nybegynder
01. marts 2006 - 20:05 #25
smid nogle svar. :D
Avatar billede blackscorpion Nybegynder
04. marts 2006 - 00:38 #26
lukker.
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