首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PHP来展开表格的列和行?

如何使用PHP来展开表格的列和行?
EN

Stack Overflow用户
提问于 2021-05-05 08:32:46
回答 1查看 33关注 0票数 0

我正在尝试编写代码,以便能够在PHP中扩展和收缩乘法表中的行和列。这是我目前拥有的代码,我认为它能够扩展和收缩行和列:

代码语言:javascript
复制
<?php
$row=4;
$col=4;
if(isset($_GET["row"]))
{
    $row=$_GET["row"];
}
if(isset($_GET["col"]))
{
    $col=$_GET["col"];
}
?>
<html style="background-color: #90A7E8;">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <html lang="en">
<head>
<body>
<ul>
<?php
echo "<table>";
for($r=1;$r<$row+1;$r++){
    echo "<tr>";
    for($c=1;$c<$col+1;$c++){
        $p=$c*$r;
        //~ echo "<td>";
        echo "<td>$p</td>";
        //~ echo "</td>";
        }
    echo "</tr>";
}
echo "</table><br>";
$row++;
echo "</ul><a href='math.php?row=$row?col=$col'>more rows</a><br>";
$row-=1;
echo "<a href='math.php?row=$row?col=$col'>less rows</a><br>";
$col++;
echo "<a href='math.php?row=$row?col=$col'>more columns</a><br>";
$col-=1;
echo "<a href='math.php?row=$row?col=$col'>less columns</a><br>";
?>
</body>
</html>

当我运行代码时,我一直收到这个错误,并且无法展开和收缩列。我在下面这行代码中得到了一个格式不正确的数值错误:for($r=1;$r<$row+1;$r++)

当我尝试展开和收缩列时,它只收缩行。

总而言之,我有一个乘法表,我想只使用PHP扩展和收缩行和列。当我运行上面指定的代码时,我在上面指定的行上得到一个错误,说“遇到了格式不正确的数值”,并且无法展开或收缩列。有人能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2021-05-05 09:27:52

从格式不正确的数值开始:$_GET中的值都是字符串。您需要将这些字符串转换为整数。

代码语言:javascript
复制
$row=(int)$_GET["row"];

在您的链接中,查询字符串的格式不正确。查询字符串以问号开头,键/值对之间用与号(&)分隔。所以你会得到

代码语言:javascript
复制
echo "</ul><a href='math.php?row=$row&col=$col'>more rows</a><br>";

最后,计算新的行数和列数的代码只适用于增加这些值,因为减少它们的计算只是逆转了应用于前一行的增加。

$row设置为4开始:

代码语言:javascript
复制
$row++;    // $row = 5
echo ...   // More rows
$row -=1   // $row is now 4
echo ...   // Fewer rows.

有很多方法可以解决这个问题。一种方法是为新的行数和列数使用新的变量。

$row设置为4开始:

代码语言:javascript
复制
$newRow = $row+1;    // $newRow = 5
echo ...             // More rows
$newRow = $row-1     // $newRow is now 3
echo ...             // Fewer rows.

将所有这些放在一起可以得到以下结果:

代码语言:javascript
复制
<?php

$row=4;
$col=4;
if(isset($_GET["row"]))
{
    $row=(int)$_GET["row"];
}
if(isset($_GET["col"]))
{
    $col=(int)$_GET["col"];
}
?>
<html style="background-color: #90A7E8;">
<meta name="viewport" content="width=device-width, initial-scale=1">
<html lang="en">
<head>
<body>
<ul>
    <?php
    echo "<table>";
    for($r=1;$r<$row+1;$r++){
        echo "<tr>";
        for($c=1;$c<$col+1;$c++){
            $p=$c*$r;
            //~ echo "<td>";
            echo "<td>$p</td>";
            //~ echo "</td>";
        }
        echo "</tr>";
    }
    echo "</table><br>";
    $newRow = $row+1;
    echo "</ul><a href='math.php?row=$newRow&col=$col'>more rows</a><br>";
    $newRow = $row-1;
    echo "<a href='math.php?row=$newRow&col=$col'>less rows</a><br>";
    $newCol = $col+1;
    echo "<a href='math.php?row=$row&col=$newCol'>more columns</a><br>";
    $newCol = $col-1;
    echo "<a href='math.php?row=$row&col=$newCol'>less columns</a><br>";
    ?>
</body>
</html>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67393787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档