如何将数据插入表中,其中tablename是一个php变量,该变量会根据按钮的单击进行更改?

如何将数据插入表中,其中tablename是一个php变量,该变量会根据按钮的单击进行更改?,php,mysql,database,Php,Mysql,Database,单击“应用”按钮时,我只想将数据插入当前表(管理员已创建且为空),而不是所有表。但是这段代码将相同的数据插入到所有表中。这是我的密码。如何纠正这一点 <?php //Setting up Database connection $con=mysqli_connect("localhost","root","","bhc-tpd-db"); //Check Connection if(mysqli_connect_errno()) { echo "<script>alert('D

单击“应用”按钮时,我只想将数据插入当前表(管理员已创建且为空),而不是所有表。但是这段代码将相同的数据插入到所有表中。这是我的密码。如何纠正这一点

<?php
//Setting up Database connection
$con=mysqli_connect("localhost","root","","bhc-tpd-db");
//Check Connection
if(mysqli_connect_errno())
{
echo "<script>alert('Database connection failed')</script>";
}

//Query to fetch records from the table
$query="SELECT * FROM event";
//Execute the query and store the result set
if ($result = $con->query($query))
{
    //output data of each row
    $row="";
    global $cname;

    while ($row=mysqli_fetch_array($result))
    {
    $cname=$row['cname'];
    echo "<center><table>
    <tr><th>Company Name</th><td>".$cname."</td></tr>
    <tr><th>Job Title</th><td>".$row["job_title"]."</td></tr>
    <tr><th>Job Description</th><td>".$row["job_desc"]."</td></tr>
    <tr><th>Preferred Candidates</th><td>".$row["candidates"]."</td></tr>
    <tr><th>Eligibility</th><td>".$row["eligibility"]."</td></tr>
    <tr><th>Salary Package/CTC</th><td>".$row["salary"]."</td></tr>
    <tr><th>Job Location</th><td>".$row["job_location"]."</td></tr>
    <tr><th>Selection Process</th><td>".$row["sel_procs"]."</td></tr>
    <tr><th>Venue</th><td>".$row["venue"]."</td></tr>
    <tr><th>Event Date</th><td>".$row["event_date"]."</td></tr>
    <tr><th>Event Time</th><td>".$row["event_time"]."</td></tr>
    <tr><th>Comment</th><td>".$row["comment"]."</td></tr>
    <tr><td colspan='2' style='text-align:right;'><button name='apply'>Apply</button></td></tr>
    </table></center>";

    echo "<hr>";

    if (isset($_POST['apply']))
    {
    $username=$_SESSION['username'];

    //$tablename[$row]=$row["cname"];
    $query="INSERT INTO $cname SELECT * FROM stu_reg WHERE email='$username' IF NOT EXISTS";
        if ($row=mysqli_fetch_array($result))
        {
        echo "<script>alert('".$cname ." Registered successfully');</script>";
        }
        else
        {
        echo "<script>alert('".$cname ." ERROR / Already Registered');</script>";
        }
    }
    }//while ending
}   

else
{
echo "0 events";
}

我假设脚本的这一部分有一些html。
由于您有多个同名的按钮('apply'),它将为所有行找到一个$POST['apply'],这解释了您当前的行为。
如果在每个按钮中输入一个值:

<button name='apply' value='$cname'>...</button>
它可能会正常工作。 不要忘记转义所有用户输入,以保护自己不受SQL注入的影响。 如果名称中有撇号,也要转义$cname

在mysql查询中,应将表名放在反勾中,如:

INSERT INTO `$cname`

因为is$cname是来自mysql的命令或属性(如用户、数据或表),否则您的脚本将崩溃。

Velthius:非常感谢您提供此解决方案。这个适合我。但不幸的是,它让我陷入了另一个错误,如下所示:“警告:mysqli_fetch_array()希望参数1是mysqli_result,bool在第95行的C:\xampp\htdocs\BHC-TPD\view_events.php中给出”您永远不会执行插入查询。在$query=“INSERT INTO”行之后,应该有一行,如:if($result=$con->query($query)){//last part with REGISTERED/ALEAREGISTERED}
INSERT INTO `$cname`