Instrukcja switch


(Patrol) #1

Witam!

Mam problem. Otóż mam taki kod:

<?php

if($_SESSION['logged']==1)

{

?>

Collector już wkrótce!

Wszystkie aktywowane teraz losy wliczaj± się do collectora!

<?php $querymycollector=mysql_query("SELECT activated_codes FROM activatedcodes WHERE id='".$_SESSION['userid']."'") or die(mysql_error()); $datamycollector = mysql_fetch_array($querymycollector); switch ($datamycollector['activated_codes']) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: echo "Zbierasz na 1 collector (Prizz+). Masz $datamycollecto[activated_codes] punktów, a potrzebujesz 10."; break; case 10: case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20: case 21: case 22: case 23: case 24: case 25: case 26: case 27: case 28: case 29: case 30: case 31: case 32: case 33: case 34: case 35: case 36: case 37: case 38: case 39: echo "Zbierasz na 2 collector (FindCode). Masz $datamycollecto[activated_codes] punktów, a potrzebujesz 40."; break; default: echo "Zbierasz na 3 collector (PrizPass). Masz $datamycollecto[activated_codes] punktów, a potrzebujesz 150."; break; } ?>[/code]

I niestety wywala mi:

Jak temu zaradzić?


(inż. Piniol) #2
<?php

if($_SESSION['logged']==1)

{

?>

Collector już wkrótce!

Wszystkie aktywowane teraz losy wliczaj± się do collectora!

<?php $querymycollector=mysql_query("SELECT activated_codes FROM activatedcodes WHERE id='".$_SESSION['userid']."'") or die(mysql_error()); $datamycollector = mysql_fetch_array($querymycollector); if($datamycollector['activated_codes'] < 10) echo "Zbierasz na 1 collector (Prizz+). Masz ".$datamycollector['activated_codes'] punktów.", a potrzebujesz 10."; else if ($datamycollector['activated_codes'] < 40) echo "Zbierasz na 2 collector (FindCode). Masz ".$datamycollector['activated_codes']." punktów, a potrzebujesz 40."; else echo "Zbierasz na 3 collector (PrizPass). Masz ".$datamycollector['activated_codes']." punktów, a potrzebujesz 150."; ?>[/code]

wywołaj też print_r($datamycollector), aby się upewnić co do struktury tabelki. Błąd w siwtch powodowała błędna nazwa zmiennej, miałeś $datamycollecto :wink:


(Patrol) #3

Twój sposób nie działa, więc poprawiłem:

<?php

if($_SESSION['logged']==1)

{

?>

Collector już wkrótce!

Wszystkie aktywowane teraz losy wliczaj± się do collectora!

<?php $querymycollector=mysql_query("SELECT activated_codes FROM activatedcodes WHERE id='".$_SESSION['userid']."'") or die(mysql_error()); $datamycollector = mysql_fetch_array($querymycollector); if($datamycollector['activated_codes'] < 10) echo "Zbierasz na 1 collector (Prizz+). Masz $datamycollector[activated_codes] punktów., a potrzebujesz 10."; else if ($datamycollector['activated_codes'] < 40) echo "Zbierasz na 2 collector (FindCode). Masz $datamycollector[activated_codes] punktów, a potrzebujesz 40."; else echo "Zbierasz na 3 collector (PrizPass). Masz $datamycollector[activated_codes] punktów, a potrzebujesz 150."; ?>[/code]

I wywala mi:


(L337 Crew) #4

Brakuje klamry domykającej ten blok instrukcji:

<?phpif($_SESSION['logged']==1)[/code]

Zakładam, że ma być na samym dole:




[code=php]?phpif($_SESSION['logged']==1)

(Koszelek) #5

....


(Airborn) #6

zaśmiecasz forum :slight_smile: