使用php / sql

时间:2018-04-23 20:46:38

标签: php html sql

我正在尝试创建一个允许我使用sql和php向数据库中的表添加新列的功能。我目前有一个前端表单,用户可以在其中选择要更改的表格,并输入用于添加新列名称的框。我还想显示所选表的新版本(即附加了新列)我的前端和后端脚本如下所示。

sql10.html:

    <form action="sql10.php" method="post">
        <select id="category">
              <option value="" disabled selected>Select your option</option>
              <option id="customer" value="customer">Customer Table</option>
              <option id="booking "value="booking">Booking Table</option>
              <option id="bookingline" value="bookingline">Order Table</option>
              <option id="package" value="package">Package Table</option>
        </select> 
        <br><br>

          Column Name: <input type="text" name="colname" placeholder="Insert New Column Name">
          <br>
            <input type="submit" value="Submit"> <input type="reset" value="Clear"> 

sql.php:

<?php
                $conn = mysqli_connect("localhost", "######", "#####")
                    or die("Could not connect: " . mysqli_error($conn));
                print "Successful Connection!";
                mysqli_select_db($conn, '#####') or die ('db will not open' );
                print " You have connected to the Assignment 3 database.<br>";

                $category  = $_POST["category"];
                $newcolumn = $_POST["colname"];

                $query1="ALTER TABLE $category ADD $newcolumn varchar(255)";
                $query2 = "SELECT * FROM $category";
                mysqli_query($conn, $query1) or die ("Invalid query");
                echo "Success in database entry";

                $numrows = mysqli_affected_rows($conn);
                echo $numrows . "row updated<br>";

                $result = mysqli_query($conn, $query) or die("Invalid query");
                $num = mysqli_num_rows($result);
                    echo "<table border='1'><tr><th>Booking ID</th></tr>";
                    for($i=0; $i<$num; $i++) { //uses $num as loop end value
                        $row = mysqli_fetch_row($result);
                        echo "<tr><td>" . $row[0] . "</td></tr>";
                    }
                    echo "</table>";

                mysqli_close($conn);
    ?>

使用此代码时,我无法为表创建新列。我的数据库由多个表组成,我希望用户能够选择他们希望添加列的表,以及输入新列的名称。谁能看出问题是什么?

1 个答案:

答案 0 :(得分:0)

我认为您的错误是select标记没有name属性。请记住,提交表单时,它会使用name属性的元素值。

因此,如果您输入HTML代码<select id="category" name="category">,则可以使用sql.php$_POST["category"]查询中捕捉其价值;也许$_POST["category"]到空了,因此你无法执行$query1句子。