0

当我输入行数和列数时,我创建了一个表单,然后将生成行数和列数表我想将输入该表的值保存到数据库中。请任何人都可以帮助我.. 我的 PHP 代码:

<?php
   global $Hostname;   
    global $Username;   
    global $Password;           
    global $Database_name;  
function getConnection()    
{
    $Hostname = "localhost";    
    $Username ="root";
    $Password ="";
    $Database_name="labdata";

    $oMysqli = new mysqli($Hostname,$Username,$Password,$Database_name);   
    return($oMysqli);   
}
if(isset($_POST['submit']))
{       
    echo "<table border='1' align='center'>";           
    for($iii = 0;$iii <$_POST['column'];$iii++)         
    {               
        echo "<tr>".$jjj."</tr>";                           
        for($jjj = 0; $jjj <$_POST['rows'];$jjj++)  //loop for display no. of rows.
        {
          echo "<td>" ."<input type=\"text\" name='$iii'>"."</td>";
        }
    }
    echo "</table>";
    echo"<form name=\"aa\" method=\"post\">";
    echo "<input type=\"submit\" name=\"save\" value=\"save\">";
    echo "</form>";
}
$TestName = $_POST['testname'];
$Result = $_POST['result'];
$Unit = $_POST['unit'];
$NormalRange = $_POST['NormalRange'];

if(isset($_POST['save']))
{
    $InsertQuery = "INSERT INTO rct(testname,result,unit,NormalRange) VALUES('$TestName','$Result','$Unit','$NormalRange')";
    $oMysqli= getConnection();
    $oMysqli->query($InsertQuery);

    print_r($InsertQuery);exit();

    while($Row = $InsertQuery->fetch_array())
    {
        $TestName = $Row['testname'];
        $Result = $Row['result'];
        $Unit = $Row['unit'];
        $NormalRange = $Row['NormalRange'];
    }   
 }
?>
<html>
<head>
<title>Rct</title>
</head>
<body>
<form name='abc' method="post">
        <label for='Table'>Define Table</label>
        <label for='rows'>Row</label>
        <input type="text" name="column"></input>
        <label for='column'>Column</label>
        <input type="text" name="rows"></input>
        <input type="submit" name="submit" value="submit" onclick="aaa()">
</form>
</body>
</html>
4

2 回答 2

0

首先,您必须更正输入标签

代替

<input type="text" name="column"></input>

<input type="text" name="column" />

其次,上部循环必须是行循环而不是列,因为列位于行内

if(isset($_POST['submit']))
{       
    echo"<form name=\"aa\" method=\"post\">";
    echo "<table border='1' align='center'>";           
    for($iii = 0;$iii <$_POST['rows'];$iii++)         
    {               
        echo "<tr>";//start Row here                          
        for($jjj = 0; $jjj <$_POST['column'];$jjj++)  //loop for display no. of rows.
        {
          echo "<td>" ."<input type=\"text\" name='".$iii.$jjj."'>"."</td>";//all TDs must be inside the row
        }
        echo "</tr>";//end row here
    }
    echo "</table>";        
    echo "<input type=\"submit\" name=\"save\" value=\"save\">";
    echo "</form>";
}

当然,表格必须在表格内。

让我知道这是否有帮助

于 2012-10-03T07:11:36.230 回答
0

你的代码有很多问题:

  1. 包含<input/>s 的表应该在里面<form name='aa'>

  2. 表中的输入应命名为$iii[].

告诉 PHP 为 中的[]所有行创建一个数组$_POST,因此您可以访问$_POST[0][0]第 0 行、第 0 列、$_POST[1][2]第 2 行、第 1 列等。

  1. 你似乎有倒退的行和列。

  2. 您的所有<input/>标签都缺少/.

  3. 没有输入名为testname, result, unit,的表单NormalRange,那么为什么要访问这些$_POST值?

  4. fetch_array()只能在SELECT查询后使用。INSERT不返回任何值。

可能还有其他我错过的东西。

于 2012-10-02T08:47:43.947 回答