I have a switch statement and its not changing the variable for whatever reason. I define it by default as one, and $getpage will just echo out as 1, not 1,10. I don't know what I'm doing wrong. Someone help please.
if (!isset($_SESSION['username'])) {
echo '<meta http-equiv="refresh" content="0; url=memberarea.php">';
}
else {
if (!isset($_GET['sex']) &&
!isset($_GET['age']) &&
!isset($_GET['page'])) {
$_GET['age'] = "x";
$_GET['sex'] = "x";
$_GET['page'] = 1;
$getage = mysqli_real_escape_string($connect, $_GET['age']);
$getsex = mysqli_real_escape_string($connect, $_GET['sex']);
$getpage = mysqli_real_escape_string($connect, $_GET['page']);
}
else {
if ($_GET['age'] != "12-15" ||
$_GET['age'] != "16-18" ||
$_GET['age'] != "19-25" ||
$_GET['age'] != "26-35" ||
$_GET['age'] != "36+") {
$_GET['age'] = "x";
$getage = mysqli_real_escape_string($connect, $_GET['age']);
}
else {
$getage = mysqli_real_escape_string($connect, $_GET['age']);
}
if ($_GET['sex'] != "male" ||
$_GET['sex'] != "female" ||
$_GET['sex'] != "x") {
$_GET['sex'] = "x";
$getsex = mysqli_real_escape_string($connect, $_GET['sex']);
}
else {
$getsex = mysqli_real_escape_string($connect, $_GET['sex']);
}
if (ctype_digit($_GET['page']) === FALSE || $_GET['page'] > 10) {
$_GET['page'] = 1;
$getpage = mysqli_real_escape_string($connect, $_GET['page']);
}
else {
$getpage = mysqli_real_escape_string($connect, $_GET['page']);
}
if ($getsex === "all") {
$getsex = "*";
}
if ($getage === "all") {
$getage = "*";
}
switch($getpage) {
case 1:
$getpage = "1,10";
break;
case 2:
$getpage = "11,20";
break;
case 3:
$getpage = "21,30";
break;
case 4:
$getpage = "31,40";
break;
case 5:
$getpage = "41,50";
break;
case 6:
$getpage = "51,60";
break;
case 7:
$getpage = "61,70";
break;
case 8:
$getpage = "71,80";
break;
case 9:
$getpage = "81,90";
break;
case 10:
$getpage = "91,100";
break;
}
}
You should be using a function for this (not a switch) since your output can be easily calculated from your input. You don't want to list every possible input and match it to a hard-coded output. This breaks as soon as you hit page 11. Instead, perform the calculations to arrive at each number via some simple math:
function get_range($page) {
$cap = $page * 10;
return $cap - 9 . "," . $cap;
}
echo get_range(7);
// prints "61,70"
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.