2017-05-07 46 views
1

我正在研究一个名为test.php的文件。通过点击按钮在表格中插入值

我想要做的是,通过点击提交按钮

我有两个表,tbl_1tbl_2

tbl_1

id | name | age 


4 | john | 20 

9 | tim | 25 

8 | lea | 22 

虽然插入值到表tbl_2与tbl_1具有相同的结构,它是空的或没有任何价值的想法是,我想要一个按钮,点击该按钮后,它会插入值tbl_1改为tbl_2根据ID

问题是,如何填写tbl_2tbl_1,通过点击一个提交按钮?

我做了一个表格,试图把价值从tbl_1tbl_2,但无济于事...

<form action="test.php?id" method="post"> 
    <input type="submit" class="btn btn-info btn-xs" name="submit" value="Copy"/> 
</form> 

<?php 
if(isset($_POST['submit'])) 
{ 
    $io = $_POST['io']; 
    $no_kes = $_POST['no_kes']; 
    $SQL = "INSERT INTO tbl_2(name, age) VALUES ('".$name."', '".$age."')"; 
    $result = mysql_query($SQL); 
} 
?> 

下面是我的表看起来像在网络上。

enter image description here

下面是我构造的表中的代码。

  <table class="table table-striped table-bordered"> 
    <tr> 
     <th>Id</th> 
     <th>Name</th> 
     <th>Age</th> 

     <th></th> 
    </tr> 
    <?php 
    // Read 
    $per_page = 7; 
    if (isset($_GET["page"])) 
    $page = $_GET["page"]; 
    else 
    $page = 1; 
    $start_from = ($page-1) * $per_page; 


    $sql = "select * from tbl_1"; 
    $result = $mydb->query($sql); 
    while ($readrow = $result->fetch_array()) { 
    ?> 
    <tr> 
    <td><?php echo $readrow['id']; ?></td> 
    <td><?php echo $readrow['name']; ?></td> 
    <td><?php echo $readrow['age']; ?></td> 
    <td> 
+0

你是如何构建这个HTML表?包括所有相关的HTML和PHP代码。 –

+0

从哪里获得姓名和年龄的形式在哪里? – Exprator

+0

@RajdeepPaul完成 – abcd

回答

2

有几个你需要在你的代码改变的事情,比如:

  • 你需要改变你的窗体的action属性以下列方式,

    <form action="test.php?id=<?php echo $readrow['id']; ?>" method="post"> 
        <input type="submit" class="btn btn-info btn-xs" name="submit" value="Copy"/> 
    </form> 
    
  • 随后,您必须在测试中捕获特定行的ID。PHP页面下面的方式,

    $id = (int)$_GET['id']; 
    
  • 通过以下方式进行最后的INSERT操作,

    if(isset($_POST['submit'])){ 
        $id = (int)$_GET['id']; 
        $SQL = "INSERT INTO tbl_2(name, age) SELECT name, age FROM tbl_1 WHERE id = {$id}"; 
        $result = mysql_query($SQL); 
    } 
    

旁注:不要使用mysql_*功能,它们从PHP 5.5开始不推荐使用,并且在PHP 7.0中完全删除。改为使用mysqlipdoAnd this is why you shouldn't use mysql_* functions

+0

谢谢你,正是我所需要的。再次感谢 – abcd

+0

@abcd很高兴我能提供帮助。干杯! :-) –

1

既然你已经提到tbl_2具有相同的结构tbl_1,你可以简单地构建您的数据库查询为:

insert into tbl_2(id, name, age) select tbl_1.id, tbl_1.name, tbl_1.age from tbl_1 left join tbl_2 on tbl_1.id = tbl_2.id; 

这里做的事情:

它扫描tbl_1和插页 tbl_2表中缺少的任何值。它有可能插入重复值。对于 ,您应该拥有足够健壮的DB结构,以避免在表中使用 重复值(使用唯一键等)。

+0

感谢您的帮助,拓宽了我的视野。 – abcd

+0

很高兴帮助你:) –