This code:
$hours = $_GET["hours"];
isset($hours) && !empty($hours) ? $hours : "empty";
$wages = $_GET["wage"];
isset($wages) && !empty($wages) ? $wages : "empty";
doesn't make any sense. Specifically, the isset() stuff doesn't do anything and might as well be removed. Think about it - you're essentially writing code that does this:
$hours = $_GET["hours"];
$hours;
$wages = $_GET["wage"];
$wages;
Obviously, lines #2 and #4 don't mean (or do) anything. Using isset() is also pointless since it will always evaluate to true (you just defined the variable on the preceding line, so why wouldn't it be set?).
Instead, use [man]isset/man on the variable that might not be set, e.g. $_GET['hours']. Common way I define variables as you're doing:
$hours = (isset($_GET['hours'] ? (int)$_GET['hours'] : NULL);
EDIT: Oops - looks like PHP is at least smart enough to not define a variable if you try to set it's value equal to that of another undefined variable. Still, the other points above remain valid since your code is doing nothing but:
$hours = $_GET["hours"];
"empty";
$wages = $_GET["wage"];
"empty";
which still doesn't mean/do anything useful.