I have this code and this works fine but I think it's too lengthy. I want to know if there can be a less lengthy code. I've heard from people that lengthy code is often not considered good.
<html>
<head><title>Table</title></head>
<body>
<form method = "Post" action = "Table.php" >
Enter a number between 2 and 20 to see its tables:
<input type = "text" name = "number" />
<input type = "hidden" value = "true" name = "checker" />
</form>
<?PHP
if ( isset($_POST['checker'])) {
$number = $_POST['number'];
switch ($number) {
case 2:
for ( $counter = 1 ; $counter <= 10 ; $counter++ ) {
$temp = $number * $counter ;
echo "$number x $counter = $temp<br />";
}
break;
case 3:
for ( $counter = 1 ; $counter <= 10 ; $counter++ ) {
$temp = $number * $counter ;
echo "$number x $counter = $temp<br />";
}
break;
case 4:
for ( $counter = 1 ; $counter <= 10 ; $counter++ ) {
$temp = $number * $counter ;
echo "$number x $counter = $temp<br />";
}
break;
case 5:
for ( $counter = 1 ; $counter <= 10 ; $counter++ ) {
$temp = $number * $counter ;
echo "$number x $counter = $temp<br />";
}
break;
case 6:
for ( $counter = 1 ; $counter <= 10 ; $counter++ ) {
$temp = $number * $counter ;
echo "$number x $counter = $temp<br />";
}
break;
case 7:
for ( $counter = 1 ; $counter <= 10 ; $counter++ ) {
$temp = $number * $counter ;
echo "$number x $counter = $temp<br />";
}
break;
case 8:
for ( $counter = 1 ; $counter <= 10 ; $counter++ ) {
$temp = $number * $counter ;
echo "$number x $counter = $temp<br />";
}
break;
case 9:
for ( $counter = 1 ; $counter <= 10 ; $counter++ ) {
$temp = $number * $counter ;
echo "$number x $counter = $temp<br />";
}
break;
case 10:
for ( $counter = 1 ; $counter <= 10 ; $counter++ ) {
$temp = $number * $counter ;
echo "$number x $counter = $temp<br />";
}
break;
default:
echo "Please enter a number between 2 and 10";
}
}
?>
</body>
</html>
1 Answer 1
Already gave in the wrong placed question, anyway here is my solution: codepad.viper-7.com/zTLliA
Copy&paste is never a good idea.
if (isset($_POST['number']) && is_numeric($_POST['number']) && (($_POST['number'] > 0) && ($_POST['number'] <= 20))) {
$number = $_POST['number'];
for ( $counter = 1 ; $counter <=10; $counter++ ) {
$temp = $number * $counter ;
echo "$number x $counter = $temp<br />";
}
} else {
echo "Please enter a number between 1 and 20";
}
A single for
is enough. In the if
statement we check if the $_POST['number']
exists, if it's actually a number and if it is between 1 and 20.
-
\$\begingroup\$ Please include code in question and explain the improvements we mainly improve coders, code only incidentally. \$\endgroup\$Caridorc– Caridorc2015年09月24日 19:13:21 +00:00Commented Sep 24, 2015 at 19:13
-
\$\begingroup\$ @Caridorc I thought it was quite self explanating, by the way I have improved the answer. Hope it helps, have a nice day. \$\endgroup\$phaberest– phaberest2015年09月24日 19:29:11 +00:00Commented Sep 24, 2015 at 19:29
-
1\$\begingroup\$ A single for is enough. In the if statement we check if the $POST_['number'] exists, if it's actually a number and if it is between 1 and 20. <- that is an explanation +1 and welcome to Codereview \$\endgroup\$Caridorc– Caridorc2015年09月24日 19:33:06 +00:00Commented Sep 24, 2015 at 19:33
Generating tables of numbers in PHP
as the title \$\endgroup\$