如何将运行时创建的表值保存到数据库中

时间:2012-10-02 08:20:41

标签: php html mysql

当我输入行数和行数时,我会创建一个表单列然后那个行数&将生成列表我想将输入该表的值保存到数据库中。请任何人都可以帮助我.. 我的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>

2 个答案:

答案 0 :(得分:0)

您的代码存在许多问题:

  1. 包含<input/>的表格应位于<form name='aa'>内。

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

  3. []告诉PHP在$_POST中创建一个包含所有行的数组,因此您可以访问第0行的$_POST[0][0],第2行的{0},$_POST[1][2] ,col 1等。

    1. 您似乎有向后的行和列。

    2. <input/>所有/代码都缺失了。

    3. 没有包含名为testnameresultunitNormalRange的输入的表单,那么为什么要访问这些$_POST值?< / p>

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

    5. 可能是我错过的其他事情。

答案 1 :(得分: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>";
}

当然桌子必须在表格内。

如果有帮助,请告诉我