插入具有多个动态输入元素的函数

我目前正在尝试在我的数据库中的两个不同表之间创建一些动态内容。


首先,“table1”将包含这些值。该表可以动态扩展。


这些条目创建动态表单就像创建动态输入标签一样,就像在 table1 中找到的一样。


我特别想做的是,每当我提交表单时,我也想在 table2 中传递这些动态条目。


这是该项目的完整示例。甚至创建表格和示例条目。


基本上我不知道用什么来代替“???” 在“insert_into_table2”函数中。


从现在开始非常感谢。


<?php

check_tables();

insert_tables();

if(isset($_GET['new']) && isset($_GET['new']) == ''){

    $somevalue = 'Some Value';

    insert_into_table2($somevalue);

}

function check_tables(){

    $connection = mysqli_connect("localhost", "testuser", "testpass", "test");

    $sql = "CREATE TABLE IF NOT EXISTS `table1` (

            `table1_ID` int(11) NOT NULL AUTO_INCREMENT,

            `table1_no` int(3) NOT NULL,

            `table1_title` varchar(255) NOT NULL,

            `table1_description` varchar(255) NOT NULL,

            PRIMARY KEY (`table1_ID`)

        ) ENGINE=MyISAM DEFAULT CHARSET=utf8;";

    if ($connection->query($sql) === TRUE) {}

    $connection->close();

    $connection = mysqli_connect("localhost", "testuser", "testpass", "test");

    $sql = "CREATE TABLE IF NOT EXISTS `table2` (

            `table2_ID` int(11) NOT NULL AUTO_INCREMENT,

            `table2_row1` varchar(255) NOT NULL, 

            `name` varchar(255) DEFAULT NULL,

            `lastname` varchar(255) DEFAULT NULL, 

            PRIMARY KEY (`table2_ID`)

        ) ENGINE=MyISAM DEFAULT CHARSET=utf8;";

    if ($connection->query($sql) === TRUE) {}

    $connection->close();

}

function insert_tables(){

    $connection = mysqli_connect("localhost", "testuser", "testpass", "test");

    $sql = "SELECT * FROM table1";

    $result = $connection->query($sql);

    if (mysqli_num_rows($result) < 1) {

        $sql = "INSERT INTO `table1` (`table1_ID`, `table1_no`, `table1_title`, `table1_description`) VALUES

                (1, 1, 'Name', 'name'),

                (2, 2, 'Lastname', 'lastname');";

        if ($connection->query($sql) === TRUE) {}

        $connection->close();

    }

}


尚方宝剑之说
浏览 116回答 1
1回答

慕的地10843

几天后,没有其他人的帮助。我想通了,只是想在这里分享,如果其他人有兴趣。首先,我为提交按钮分配了一个名称以使触发器工作。而不是这个;<input type="submit"/>我用过这个;<input type="submit" name="new_entry"/>当然,还要更改触发器。从;isset($_GET['new']) && isset($_GET['new']) == ''到;isset($_POST['new_entry'])最后,我能够从列和输入中获取值并在下面添加代码;function insert_into_table2($somevalue){&nbsp; &nbsp; $connection = mysqli_connect("localhost", "testuser", "testpass", "test");代码是;$sqlfc = "SELECT * FROM table1 ORDER BY table1_no ASC";&nbsp; &nbsp; $result = $connection->query($sqlfc);&nbsp; &nbsp; $columns_ = array();&nbsp; &nbsp; if (mysqli_num_rows($result) > 0) {&nbsp; &nbsp; &nbsp; &nbsp; $values = implode("', '", $_POST["name"]);&nbsp; &nbsp; &nbsp; &nbsp; while($row = mysqli_fetch_array($result)){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $columns_[] = $row['table1_description'];&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; $columns = implode(", ",$columns_);&nbsp; &nbsp; }对于决赛,我能够更改问题标记区域。比如从;$sql = "INSERT INTO `table2` (`table2_row1`, '???') VALUES ('$somevalue', '???');";到;$sql = "INSERT INTO table2 (table2_row1, $columns) VALUES ('$somevalue', '$values');";现在一切正常。我以为我可以从这里得到帮助,但这次我没有那么幸运。希望这至少可以帮助其他人。
打开App,查看更多内容
随时随地看视频慕课网APP