Php mysql添加列的问题

Php mysql添加列的问题,php,mysql,sql,alter,two-columns,Php,Mysql,Sql,Alter,Two Columns,因此,我在向表tablica添加列时遇到问题,tablica只有id列和槽循环。我使用ALTER query添加列名,然后使用query INSERT从表prva添加值,下面是我的代码: if(isset($_POST['submit'])) { mysql_query("CREATE TABLE tablica (id INT PRIMARY KEY AUTO_INCREMENT)"); if(isset($_POST['kolona']))

因此,我在向表tablica添加列时遇到问题,tablica只有id列和槽循环。我使用ALTER query添加列名,然后使用query INSERT从表prva添加值,下面是我的代码:

    if(isset($_POST['submit']))
    {
        mysql_query("CREATE TABLE tablica (id INT PRIMARY KEY AUTO_INCREMENT)");

        if(isset($_POST['kolona']))
            {
                foreach($_POST['kolona'] as $vrednost)
                  {  

                mysql_query("ALTER TABLE tablica ADD $vrednost text");

                mysql_query("INSERT INTO tablica ($vrednost) SELECT $vrednost FROM prva");}

            }
    }
我在添加列的方式上有问题,第一列可以,然后第二列从第一列结束的地方开始,所以我的输出是这样的:

id   column1  column2
1     a1       NULL
2     a2       NULL
5     NULL     b1
6     NULL     b2
它需要:

id  column1   column2
1    a1        b1
2    a2        b2

所以我需要把第2列放在适当的位置,然后我想id也会被排序。有人能帮忙吗?Tnx

您正在执行插入操作,其中只提供一列:

INSERT INTO tablica ($vrednost) SELECT $vrednost FROM prva
这将强制其他没有默认值或自动增量的列为null

与在循环的每次迭代中进行插入不同,您应该在foreach迭代中获得不同的$vrednost,并在循环后执行类似以下的查询:

INSERT INTO tablica (vrednost1,vrednost2,...) SELECT vrednost1,vrednost2,... FROM prva

为什么不修改列以使其不允许空值呢?我尝试将查询更改为:mysql_query(“alter tablica ADD$vrednost text NOT NULL”);但是我得到的是空的空格,而不是像上面那样的空,只是我有更多的a-s和b-s,a-s和b-s是mysql客户端中的一些文本,显示CREATE tablica并将结果发布到这里。我不知道怎么做?这样做有点问题,因为我不知道需要添加多少列,它总是不同的数字,所以它是不同的数字,一个不同的VREDNOT1,VREDNOT2,…是的。但在循环的每一次迭代中都要修改表。然后你可以在你的
$\u POST['kolona']
上使用类似的东西来构造你的插入。你的意思是用内爆来破坏数组$\u POST['kolona'],得到vrednos1,vrednos2…?是的,当我把vrednos1,vrednos2的精确数字放进去时,它工作正常。。。但是当我把它放在一个循环中时,同样的问题,该死的,不知道如何构造insertI我对php不是很熟悉,但我在搜索时发现了。将该问题中的userData替换为$_POST['kolona'],并执行选择操作,而不是值。应该这样做。