1

フォームに入力された行数と列数のテーブルを作成するフォームを作成しました。入力したフィールドテーブルをデータベースに作成し、その値をデータベーステーブルに保存したいと思います。何を使うべきか教えてください。

私のコード:

 <?php
    global $Host;
    global $Username;
    global $password;
    global $database;
    function getConnection()
    {
        $Host = "localhost";
        $Username = "root";
        $password = "";
        $database = "labdata";

        $oMysqli = new mysqli($Host,$Username,$password,$database);
        return($oMysqli);
    }
    ?>
    <html>
    <head>
    <title>aa</title>
    </head>
    <body>
        <form name="report Creation" method="post">
                            <label for='Table'>Define Table</label>

                            <label for='column'>Row</label>
                            <input type="text" name="column"></input>

                            <label for='rows'>Column</label>
                            <input type="text" name="rows"></input>

            <input type="submit" name="submit" value="submit">
    </form>
    </body>
    </html>     
    <?php
      function displayData($column,$rows)             
        {       
          echo "<table border='1' align='center'>";           
          for($i = 0;$i<$_POST['column'];$i++)       
            { 
                echo "<tr>".$i."</tr>";                              
                for($j = 0; $j <$_POST['rows'];$j++)         
                {
                 echo "<td>" ."<input type=\"text\" name='column_$i[$j]'>"."</td>"; 
                }
            }
            echo "</table>";
        echo "<form>";
        echo "<input type=\"submit\" name=\"ok\" value=\"ok\">";
        echo "</form>";
         //function displaydata($column = NULL) {if($id == NULL) Event::run('system.52');}
      }

    if(isset($_POST['submit']))displaydata();// Show data INSIDE form
    {
    $query = "CREATE TABLE Cars('$columns[$j]')";
    $oMysqli = getConnection();
    $oMysqli->query($query);
    $Insert = "INSERT INTO Cars(Id,column[$j]) VALUES($Id,$column)";
    $oMysqli = getConnection();
    $oMysqli->query($Insert);

    if(isset($_POST['ok']))
     {
      $plength = count($_POST['column']);
      for($j=0;$j<$plength;$j++)
      {

        $b = $_POST['column'][$j];
        $pa = array('column' => $b['column']);
        foreach($pa as $l => $m)
        {
            $pa[$l] = mysql_real_escape_string($m);
        }
                            $columns = $pa['column'];
                            $columns = $_POST['column'][$j];                        

                        for($n=0;$n<$columns;$n++)
                        {
                                $x= $_POST['column'][$j];
                                $ab = array('column' => $c['column']);
                                foreach($t as $u => $n)
                                {
                                 $ab[$u] = mysql_real_escape_string($n);                             
                                }
                                $columns = $ab['column'];
                                $columns = $_POST['column'][$j];
                        }

        }
    }
        if($result = $mysqli->query($Insert))
            {
             $k=0;
             $column = explode(",",$_POST['columns']);
                        foreach($column as $c)
                    {
                      echo "<td><b>$c</b></td>\r\n";
                    }
                echo "</tr>";
            }
        }
    ?>
4

2 に答える 2

2

あなたの質問に答えるために: テーブルを作成することは、サーバーに対して SQL ステートメントを実行することです。

戦略を再考する必要があります。ユーザー入力に基づいてテーブルを作成するのは悪い設計です。

于 2012-10-11T07:16:35.303 に答える
1

クエリで「CREATE TABLE」構文を使用します。

それに関するすべての情報: http://dev.mysql.com/doc/refman/5.1/en/create-table.html

于 2012-10-11T07:16:56.947 に答える